diff options
| author | akbash <akbash@herdr.dev> | 2026-08-04 22:35:33 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-04 22:35:33 +0300 |
| commit | ee8429fb79ed0c53d2f23fa1b75b415e7f0cd377 (patch) | |
| tree | dfcde90663057064ddb14932e2a23283af21c412 /src/client | |
| parent | d8838082dc06b0d85ef164650b979e57a87f7721 (diff) | |
fix(input): parse default mouse reports (#2312)
* fix(input): parse default mouse reports
refs #2309
* fix(input): preserve split default mouse reports
refs #2309
---------
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/input.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/client/input.rs b/src/client/input.rs index fd374491..9e0d300e 100644 --- a/src/client/input.rs +++ b/src/client/input.rs @@ -189,7 +189,7 @@ fn idle_flush_timeout_ms( host_mouse_capture_active: bool, ) -> i32 { if host_mouse_capture_active - && (framer.has_pending_lone_escape() || framer.has_pending_incomplete_sgr_mouse_sequence()) + && (framer.has_pending_lone_escape() || framer.has_pending_incomplete_mouse_sequence()) { crate::raw_input::MOUSE_ACTIVE_ESCAPE_SEQUENCE_FLUSH_TIMEOUT_MS } else { @@ -543,18 +543,20 @@ mod tests { fn mouse_active_escape_sequences_get_longer_reassembly_window() { let mut escape = crate::raw_input::RawInputByteFramer::default(); assert!(escape.push(b"\x1b").is_empty()); - let mut mouse = crate::raw_input::RawInputByteFramer::default(); - assert!(mouse.push(b"\x1b[<3").is_empty()); + let mut sgr_mouse = crate::raw_input::RawInputByteFramer::default(); + assert!(sgr_mouse.push(b"\x1b[<3").is_empty()); + let mut default_mouse = crate::raw_input::RawInputByteFramer::default(); + assert!(default_mouse.push(b"\x1b[MC").is_empty()); let mut unrelated = crate::raw_input::RawInputByteFramer::default(); assert!(unrelated.push(b"\x1b[49:33;2:").is_empty()); - for framer in [&escape, &mouse, &unrelated] { + for framer in [&escape, &sgr_mouse, &default_mouse, &unrelated] { assert_eq!( idle_flush_timeout_ms(framer, false), crate::raw_input::RAW_INPUT_IDLE_FLUSH_TIMEOUT_MS ); } - for framer in [&escape, &mouse] { + for framer in [&escape, &sgr_mouse, &default_mouse] { assert_eq!( idle_flush_timeout_ms(framer, true), crate::raw_input::MOUSE_ACTIVE_ESCAPE_SEQUENCE_FLUSH_TIMEOUT_MS |
