diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-24 02:09:22 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-24 02:10:47 +0300 |
| commit | 58e812b238844fa05233eadc537081a1f0d06f36 (patch) | |
| tree | 61d071cf4a6c33b58cf8a35f56aa8174fe084252 /src/app/mod.rs | |
| parent | 36de78dd4fa4e2c203ee955f18caf82a6bca7e80 (diff) | |
fix: consume handled url click gestures
refs #1761
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 0c0a2688..30e1c949 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -119,6 +119,7 @@ pub struct App { pub(crate) next_api_worktree_operation_id: u64, pub(crate) last_sidebar_divider_click: Option<Instant>, pub(crate) last_pane_click: Option<PaneClickState>, + pub(crate) pending_url_click_sources: HashSet<InputSourceId>, pub(crate) next_resize_poll: Instant, pub(crate) next_animation_tick: Option<Instant>, pub(crate) next_auto_update_check: Option<Instant>, @@ -744,6 +745,7 @@ impl App { next_api_worktree_operation_id: 1, last_sidebar_divider_click: None, last_pane_click: None, + pending_url_click_sources: HashSet::new(), next_resize_poll: Instant::now() + RESIZE_POLL_INTERVAL, next_animation_tick: None, next_auto_update_check: version_check_enabled @@ -1664,7 +1666,7 @@ impl App { } crate::raw_input::RawInputEvent::Mouse(mouse) => { if self.state.popup_pane.is_some() || self.state.mouse_capture { - self.handle_mouse_event_headless(mouse); + self.handle_mouse_event_headless(source_id, mouse); } else { self.state .handle_pane_mouse_only(&self.terminal_runtimes, mouse); @@ -1800,8 +1802,12 @@ impl App { /// Delegates to the same mouse handling logic used in the monolithic /// mode (hit-testing against the rendered UI), which works because /// the server's AppState maintains view geometry from virtual rendering. - fn handle_mouse_event_headless(&mut self, mouse: crossterm::event::MouseEvent) { - self.handle_mouse(mouse); + fn handle_mouse_event_headless( + &mut self, + source_id: InputSourceId, + mouse: crossterm::event::MouseEvent, + ) { + self.handle_mouse_from_input_source(source_id, mouse); } } |
