summaryrefslogtreecommitdiff
path: root/src/raw_input.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-25 18:39:44 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-25 18:42:33 +0300
commit58bcd76bfdb76ecbb8cfee868dabe60b43f16cc6 (patch)
treedad4b122401b87c9bc9b8e5b46b854c9534fc983 /src/raw_input.rs
parentac9dac0263ba2336710e8fc350600ff8674ebf99 (diff)
feat: make focus-gain redraw configurable
refs #282
Diffstat (limited to 'src/raw_input.rs')
-rw-r--r--src/raw_input.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/raw_input.rs b/src/raw_input.rs
index d75c6c49..fb9a1a3d 100644
--- a/src/raw_input.rs
+++ b/src/raw_input.rs
@@ -128,10 +128,14 @@ pub enum RawInputEvent {
Unsupported,
}
-pub(crate) fn events_require_host_surface_redraw(events: &[RawInputEvent]) -> bool {
- events
- .iter()
- .any(|event| matches!(event, RawInputEvent::OuterFocusGained))
+pub(crate) fn events_require_host_surface_redraw(
+ events: &[RawInputEvent],
+ redraw_on_focus_gained: bool,
+) -> bool {
+ redraw_on_focus_gained
+ && events
+ .iter()
+ .any(|event| matches!(event, RawInputEvent::OuterFocusGained))
}
pub fn spawn_input_reader() -> mpsc::Receiver<RawInputEvent> {
@@ -667,10 +671,11 @@ mod tests {
#[test]
fn outer_focus_gained_requests_host_surface_redraw() {
let events = parse_raw_input_bytes_sync(b"\x1b[I");
- assert!(events_require_host_surface_redraw(&events));
+ assert!(events_require_host_surface_redraw(&events, true));
+ assert!(!events_require_host_surface_redraw(&events, false));
let events = parse_raw_input_bytes_sync(b"\x1b[O");
- assert!(!events_require_host_surface_redraw(&events));
+ assert!(!events_require_host_surface_redraw(&events, true));
}
#[test]