aboutsummaryrefslogtreecommitdiff
path: root/src/client/shell/state.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-13 23:05:30 +0300
committerGitHub <noreply@github.com>2026-09-13 23:05:30 +0300
commitf8e59221cbe5117f8f691a36affa374f5a986a9f (patch)
tree3b2792683eff251b061fbbad7343ecffafe91aab /src/client/shell/state.rs
parent59167658455442ffd2cd5b72a0fa81bcc4bcdf9e (diff)
feat: add ctrl-hover highlighting and fix wrapped links (#4074)
refs #1282
Diffstat (limited to 'src/client/shell/state.rs')
-rw-r--r--src/client/shell/state.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/shell/state.rs b/src/client/shell/state.rs
index eede0f29..8f2aec43 100644
--- a/src/client/shell/state.rs
+++ b/src/client/shell/state.rs
@@ -699,6 +699,9 @@ pub(super) enum PendingEndpointKind {
absolute_row: u32,
generation: u64,
},
+ PaneLinkResolve {
+ target: super::link_hover::LinkHoverTarget,
+ },
PaneLinkActivate {
pane_id: String,
inner_rect: Rect,
@@ -934,6 +937,7 @@ pub(crate) struct ClientShellState {
pub(super) overlay: Option<ClientShellOverlay>,
pub(super) previous_pane_id: Option<String>,
pub(super) pane_mouse_gesture: Option<ClientPaneMouseGesture>,
+ pub(super) link_hover: Option<super::link_hover::LinkHover>,
pub(super) url_click_consumes_until_up: bool,
pub(super) replaying_url_click: bool,
pub(super) selection: Option<crate::selection::Selection<String>>,
@@ -1093,6 +1097,7 @@ impl ClientShellState {
overlay,
previous_pane_id: None,
pane_mouse_gesture: None,
+ link_hover: None,
url_click_consumes_until_up: false,
replaying_url_click: false,
selection: None,
@@ -1284,6 +1289,7 @@ impl ClientShellState {
.then_some(ClientShellOverlay::Onboarding);
self.previous_pane_id = None;
self.pane_mouse_gesture = None;
+ self.link_hover = None;
self.url_click_consumes_until_up = false;
self.replaying_url_click = false;
self.selection = None;
@@ -1811,6 +1817,7 @@ impl ClientShellState {
self.graphics
.set_scene(std::mem::take(&mut surface.graphics));
self.pane_surface = Some(surface);
+ self.invalidate_link_hover();
self.resume_mobile_switcher_if_ready();
self.reconcile_input_source();
}