From 3629d9568acf61f1d1e5ea09b0e7386be68ae683 Mon Sep 17 00:00:00 2001 From: blindfs Date: Tue, 14 Jul 2026 09:28:00 +0800 Subject: [PATCH 1/2] feat(config): new option to toggle covered elements hiding --- README.md | 1 + src/app_engine/lifecycle.rs | 4 +++- src/config.rs | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b81af2..1b54731 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,7 @@ A comprehensive configuration file is generated when you run this app at the fir | `workflows` | Sequences of primitive actions for specific UI roles | `[Default Workflows]` | | `scroll_distance` | Relative distance to scroll when using scroll actions | `0.05` | | `hide_scrolling_menu` | Whether to hide the menu when scrolling | `false` | +| `hide_covered_elements` | Whether to hide invisible/covered elements when there's overlapping detected. (Press 󰁮 to redraw false positives) | `true` | | `element_min_width` | Minimum width for UI elements to be considered | `15` | | `element_min_height` | Minimum height for UI elements to be considered | `15` | | `image_min_size` | Minimum size (width/height) for images | `20` | diff --git a/src/app_engine/lifecycle.rs b/src/app_engine/lifecycle.rs index f0ce7e3..c8b571d 100644 --- a/src/app_engine/lifecycle.rs +++ b/src/app_engine/lifecycle.rs @@ -332,7 +332,9 @@ impl AppEngine { let need_help_msg = target == Target::ChildElement && self.selected.is_none(); if !self.hint_boxes.is_empty() { - if matches!(target, Target::Clickable | Target::Text) { + if self.config.hide_covered_elements + && matches!(target, Target::Clickable | Target::Text) + { self.resolve_overlapping(); } resolve_collisions(&mut self.hint_boxes, self.hint_width, &self.config.theme); diff --git a/src/config.rs b/src/config.rs index a9ef081..5d8f542 100644 --- a/src/config.rs +++ b/src/config.rs @@ -416,6 +416,8 @@ pub struct GlyphlowConfig { pub scroll_distance: f64, #[serde(default = "default_hide_scrolling_menu")] pub hide_scrolling_menu: bool, + #[serde(default = "default_hide_covered_elements")] + pub hide_covered_elements: bool, #[serde(default = "default_element_min_width")] pub element_min_width: u16, #[serde(default = "default_element_min_height")] @@ -571,6 +573,9 @@ fn default_scroll_distance() -> f64 { fn default_hide_scrolling_menu() -> bool { false } +fn default_hide_covered_elements() -> bool { + true +} fn default_element_min_width() -> u16 { 15 } @@ -606,6 +611,7 @@ impl Default for GlyphlowConfig { workflows: default_workflows(), scroll_distance: default_scroll_distance(), hide_scrolling_menu: default_hide_scrolling_menu(), + hide_covered_elements: default_hide_covered_elements(), element_min_width: default_element_min_width(), element_min_height: default_element_min_height(), image_min_size: default_image_min_size(), From fee56db9624f658b626f50916d20612b811d48f3 Mon Sep 17 00:00:00 2001 From: blindfs Date: Tue, 14 Jul 2026 09:30:34 +0800 Subject: [PATCH 2/2] fix: unicode --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b54731..ab589c0 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ A comprehensive configuration file is generated when you run this app at the fir | `workflows` | Sequences of primitive actions for specific UI roles | `[Default Workflows]` | | `scroll_distance` | Relative distance to scroll when using scroll actions | `0.05` | | `hide_scrolling_menu` | Whether to hide the menu when scrolling | `false` | -| `hide_covered_elements` | Whether to hide invisible/covered elements when there's overlapping detected. (Press 󰁮 to redraw false positives) | `true` | +| `hide_covered_elements` | Whether to hide invisible/covered elements when there's overlapping detected. (Press ⌫ to redraw false positives) | `true` | | `element_min_width` | Minimum width for UI elements to be considered | `15` | | `element_min_height` | Minimum height for UI elements to be considered | `15` | | `image_min_size` | Minimum size (width/height) for images | `20` |