diff options
author | robert <robertrussell.72001@gmail.com> | 2022-01-08 11:40:34 -0800 |
---|---|---|
committer | sinanmohd <pcmsinan@gmail.com> | 2023-01-12 08:21:56 +0530 |
commit | 3c4c2cffb32782f9b8df961e68c9cadca378f93a (patch) | |
tree | 34b7f22a63e62fef200f07c9409f832bf7d22b98 /st.h | |
parent | 80d75fa9d416030108ef1b4e6cc07e67d555aeb5 (diff) |
Fix mousereport
This patch replaces the previous one I sent.
The following changes are made in this patch:
- Fix tracking of pressed buttons. Previously, pressing two buttons and
then releasing one would make st think no buttons are pressed, which
in particular broke MODE_MOUSEMOTION.
- Always send the lowest-numbered pressed button on motion events; when
no button is pressed for a motion event in MODE_MOUSEMANY, then send
a release. This matches the behaviour of xterm. (Previously, st sent
the most recently pressed button in the motion report.)
- Remove UB (?) access to potentially inactive struct member
e->xbutton.button of XEvent union.
- Fix (unlikely) possibility of overflow for large button numbers.
The one discrepancy I found between st and xterm is that xterm sometimes
encodes buttons with large numbers (>5) strangely. E.g., xterm reports
presses of buttons 8 and 9 as releases, whereas st properly (?) encodes
them as presses.
Diffstat (limited to 'st.h')
0 files changed, 0 insertions, 0 deletions