system settings
git clone https://git.lucas.co/cce-system-interface.git
Close context menu on Escape key press
src/main.rs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/main.rs b/src/main.rs
index e86077f..a8fa096 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4186,6 +4186,16 @@ fn collect_popover_rects(w: &dyn cce_ui::widget::Element, popovers: &mut Vec<(f3
}
fn handle_key_input_internal(&mut self, event: &cce_ui::widget::KeyEvent) -> bool {
+ if cce_ui::widget::context_menu::is_visible() {
+ if event.state == cce_ui::widget::ElementState::Pressed
+ && event.logical_key == cce_ui::widget::Key::Named(cce_ui::widget::NamedKey::Escape)
+ {
+ cce_ui::widget::context_menu::hide();
+ self.needs_rebuild = true;
+ return true;
+ }
+ }
+
if event.state == cce_ui::widget::ElementState::Pressed && !event.repeat {
let is_nav_key = match (&event.logical_key, event.ctrl) {
(cce_ui::widget::Key::Character(c), true) if c == "j" || c == "J" || c == "k" || c == "K" || c == "u" || c == "U" || c == "i" || c == "I" => true,