diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-25 18:39:44 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-25 18:42:33 +0300 |
| commit | 58bcd76bfdb76ecbb8cfee868dabe60b43f16cc6 (patch) | |
| tree | dad4b122401b87c9bc9b8e5b46b854c9534fc983 /src/raw_input.rs | |
| parent | ac9dac0263ba2336710e8fc350600ff8674ebf99 (diff) | |
feat: make focus-gain redraw configurable
refs #282
Diffstat (limited to 'src/raw_input.rs')
| -rw-r--r-- | src/raw_input.rs | 17 |
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] |
