aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-24 02:09:22 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-24 02:10:47 +0300
commit58e812b238844fa05233eadc537081a1f0d06f36 (patch)
tree61d071cf4a6c33b58cf8a35f56aa8174fe084252 /src/app/mod.rs
parent36de78dd4fa4e2c203ee955f18caf82a6bca7e80 (diff)
fix: consume handled url click gestures
refs #1761
Diffstat (limited to 'src/app/mod.rs')
-rw-r--r--src/app/mod.rs12
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);
}
}