SIGN IN SIGN UP

Support Shift+mouse to bypass application mouse reporting (#536)

* Support Shift+mouse to bypass application mouse reporting

When an application enables mouse reporting, all mouse events are
forwarded and the user cannot perform native text selection. The
established convention across terminal emulators is to let users hold
Shift to bypass mouse reporting and interact with the terminal's own
selection instead.

Check for the Shift modifier in mouseDown, mouseUp, mouseDragged, and
scrollWheel before forwarding events to the application. When Shift is
held, events fall through to normal selection/scroll handling.

* Add XTSHIFTESCAPE (CSI > Ps s) support for shift mouse capture

Allow applications to opt in to receiving shift+click via the
XTSHIFTESCAPE escape sequence (CSI > 1 s), matching xterm and Ghostty.
By default, shift continues to bypass mouse reporting for local text
selection. Sending CSI > 0 s (or a terminal reset) restores the default.

The existing allowMouseReporting toggle is preserved as the master switch.
E
Evert Junior committed
551bfcc4a4df4e95049b70ddd6de1aecaad87e32
Parent: 86456ca
Committed by GitHub <noreply@github.com> on 5/6/2026, 9:19:14 PM