diff options
| author | Michael Hackner <mhackner@gmail.com> | 2026-08-13 08:00:32 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-13 18:00:32 +0300 |
| commit | f76d7df549e95e1699651f59916e9a38f0f58985 (patch) | |
| tree | c8e50a75fd32e68d63b8e0386de7e791cb727fb4 /src/app/mod.rs | |
| parent | b7dca4bb2a2cf488407ae051b40782f03fcabc62 (diff) | |
fix: keep tab and sidebar clicks when the terminal reports a stray drag (#2736)
* fix: keep tab and sidebar clicks when the terminal reports a stray drag
This works around a Ghostty bug that causes herdr tabs to be unclickable
in fullscreen mode.
Ghostty on macOS in native fullscreen emits one motion report after a
fresh press in the strip where the menu bar reveals, with the row
shifted to near the bottom of the grid. The cause is upstream: macOS
delivers one mouse event whose y is nearly a window height away from the
real pointer, and Ghostty reports it as it arrives (iTerm2 and
Terminal.app report the same clicks correctly).
Herdr treated the stray report as a real drag and lost the click two
ways: it opened a tab reorder with no drop target, making the release a
no-op, and it handed the release to the pane under the bogus
coordinates.
Now, a press on the tab bar or sidebar owns the gesture until release,
and a tab drag only starts once the pointer is over a real drop target.
refs #796
* fix: scope chrome mouse gestures to their input source
* fix: preserve chrome drag input source
* fix: preserve concurrent chrome presses
---------
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index d3d79954..ef33c693 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -602,8 +602,8 @@ impl App { split_borders: Vec::new(), }, drag: None, - workspace_press: None, - tab_press: None, + workspace_presses: HashMap::new(), + tab_presses: HashMap::new(), selection: None, selection_autoscroll: None, context_menu: None, |
