From: robert Date: Sat, 8 Jan 2022 19:40:34 +0000 (-0800) Subject: Fix mousereport X-Git-Url: https://git.xinqibao.xyz/st.git/commitdiff_plain/ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32?ds=inline;hp=ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32 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. ---