git.lucas.co / cce-data-editor
structured data editor
git clone https://git.lucas.co/cce-data-editor.git

commite7733deb2ec6f3baeb12966c9d222a6d67d3dbe8
parent97cb66e137
authorLucas Galante <[email protected]>
date2026-07-04 14:31
Detect and support keybind editor for brightness_up and brightness_down keys

 src/main.rs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 8cbbf41..df48664 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1344,7 +1344,9 @@ impl Application for DataEditorApp {
                     let mut is_menu_type = false;
                     let mut menu_options = Vec::new();
                     let mut is_button_type = false;
+                    let mut annotation_str = None;
                     if let Some(annotation) = cce_ui::config::get_kdl_type_annotation(&self.raw_json_editor.text, key_name) {
+                        annotation_str = Some(annotation.clone());
                         if annotation.starts_with("menu:") {
                             is_menu_type = true;
                             let opts_str = annotation.trim_start_matches("menu:");
@@ -1394,7 +1396,7 @@ impl Application for DataEditorApp {
                     } else {
                         self.selected_button_editor.set_rect(-1000.0, -1000.0, 1.0, 1.0);
                         self.selected_choice_editor.set_rect(-1000.0, -1000.0, 1.0, 1.0);
-                        let is_keybind_type = key_name == "key" || key_name == "keybind" || key_name == "shortcut" || key_name == "delete" || key_name.ends_with("_key") || key_name.ends_with(".key") || key_name.ends_with(".keybind") || key_name.ends_with("_delete") || key_name.ends_with(".delete");
+                        let is_keybind_type = key_name == "key" || key_name == "keybind" || key_name == "shortcut" || key_name == "delete" || key_name.ends_with("_key") || key_name.ends_with(".key") || key_name.ends_with(".keybind") || key_name.ends_with("_delete") || key_name.ends_with(".delete") || key_name == "brightness_up" || key_name == "brightness_down" || key_name.ends_with(".brightness_up") || key_name.ends_with(".brightness_down") || annotation_str.as_deref() == Some("keybind");
                         if is_keybind_type {
                             let val_str = match val {
                                 serde_json::Value::String(st) => st.clone(),
@@ -1794,7 +1796,9 @@ impl Application for DataEditorApp {
                         
                         let mut is_menu_type = false;
                         let mut menu_options = Vec::new();
+                        let mut annotation_str = None;
                         if let Some(annotation) = cce_ui::config::get_kdl_type_annotation(&self.raw_json_editor.text, key_name) {
+                            annotation_str = Some(annotation.clone());
                             if annotation.starts_with("menu:") {
                                 is_menu_type = true;
                                 let opts_str = annotation.trim_start_matches("menu:");
@@ -1830,7 +1834,7 @@ impl Application for DataEditorApp {
                             self.selected_bool_editor.set_checked(*b);
                         }
                         
-                        let is_keybind_type = key_name == "key" || key_name == "keybind" || key_name == "shortcut" || key_name == "delete" || key_name.ends_with("_key") || key_name.ends_with(".key") || key_name.ends_with(".keybind") || key_name.ends_with("_delete") || key_name.ends_with(".delete");
+                        let is_keybind_type = key_name == "key" || key_name == "keybind" || key_name == "shortcut" || key_name == "delete" || key_name.ends_with("_key") || key_name.ends_with(".key") || key_name.ends_with(".keybind") || key_name.ends_with("_delete") || key_name.ends_with(".delete") || key_name == "brightness_up" || key_name == "brightness_down" || key_name.ends_with(".brightness_up") || key_name.ends_with(".brightness_down") || annotation_str.as_deref() == Some("keybind");
 
                         if is_menu_type {
                             self.ui_context.set_focused(&mut self.selected_choice_editor);