macOS native fullscreen: top-edge mouse reports corrupt after window ages (phantom drag to last row / total event loss) #13272
Replies: 2 comments
|
Supplementary evidence + one correction to the report above. Correction — window age is NOT required. I checked the process start time afterwards: the window that produced the phantom-drag capture (mode 1) was only ~4 minutes old (Ghostty PID started 04:26:23; capture at 04:30). I had quit-and-reopened Ghostty myself before capturing, and the fresh window was still broken; opening a second tab is what cleared it that time. So: one occurrence on a days-old window (mode 2), one on a fresh window (mode 1). Restart cleared it once; second-tab insetting cleared it both times. macOS unified log — top-edge clicks are being routed to hidden titlebar chrome. During the exact seconds of the phantom-drag ruler clicks (04:30), AppKit logged button tracking + a close attempt on the terminal window — i.e. a click at the top-left edge of the fullscreen terminal was hit-tested to a titlebar control (only Similar pairs at 04:28:04 and 04:29:04 (different windowNumbers) during earlier clicks in the same session. At window creation there is also an appearance invalidation deferred against a window in a Full ruler captures ( Mode 1 — fresh window (~4 min), native fullscreen (phantom drags at top edge, clean below): Mode 2 — days-old window, native fullscreen, Healthy — freshly restarted window, identical config/fullscreen/single-tab (13 consecutive clean top-edge clicks mapping to row 1, then clean steps down): Window geometry (CGWindowList), broken vs workaround state:
Happy to pull longer |
|
I have the same problem (unclickable Herdr top tabs) and just discovered that it works properly if I ssh into byobu/tmux and run
|
Uh oh!
There was an error while loading. Please reload this page.
Issue Description
In native macOS fullscreen, after a Ghostty window has been open for a few hours, SGR mouse reports for clicks near the top edge of the terminal get corrupted or vanish. A freshly restarted Ghostty behaves correctly in the identical window configuration, then degrades again within hours (caught twice in one night). I found this because herdr draws a clickable tab bar on the top terminal row and its tab switching silently died.
Disclosure: investigated with AI assistance (Claude Code); this report was reviewed, edited and submitted by me.
Expected Behavior
With mouse modes 1000/1002/1006 active, a click near the top edge produces a clean press/release pair at the correct cell for the lifetime of the window, same as a fresh window does.
Actual Behavior
Two corruption modes, both captured with
/bin/cat -v+ mouse modes in plain zsh (no multiplexer attached):press(1,1)->drag(1,96)->release(1,96)(96 = last grid row). Reproduced on consecutive clicks; rows 2+ clean at the same moment. Looks like the pointer's grid-relative Y going negative during the hidden titlebar's hover-reveal, then clamping/wrapping to the max row.window-padding-y = 36active, so top ~91 px dead). Increasing padding did not move the dead band. Full quit + reopen eliminated it -- top-edge clicks then map cleanly to row 1 (13/13 clean).Opening a second Ghostty tab works around both modes (visible tab bar insets content 36 px away from the edge region).
Reproduction Steps
Degraded state sets in on its own (seen after ~3 hours and after several days of uptime; native fullscreen, external 3200x1800 display as primary, across display sleeps / space switches). Once degraded, 100% reproducible until Ghostty restarts:
printf '\e[?1000h\e[?1002h\e[?1006h'; /bin/cat -vGhostty Version
OS Version Information
macOS Tahoe 26.5.2 (Darwin 25.5.0 arm64), MacBook Pro 16" M4 Max, grid 374x96
Minimal Ghostty Configuration
Additional Relevant Configuration
Normally runs the herdr multiplexer (modes 1000/1002/1003/1006), but both modes reproduce with it detached. Mouse: Logitech MX Master 4. Closest existing reports (all closed, none matching): #8612, #9597, #8508, #8415, #2853, #3572.
All reactions