Date: Sun, 14 Apr 2019 20:57:50 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 237287] [patch] moused(8) ignores button release events in virtual scroll mode Message-ID: <bug-237287-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237287 Bug ID: 237287 Summary: [patch] moused(8) ignores button release events in virtual scroll mode Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: bojan_petrovic@fastmail.fm Created attachment 203676 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D203676&action= =3Dedit moused.c.diff Sometimes when I double-click a word in an X terminal to select it and then immediately click the middle button to paste it, the terminal is left in dr= ag selection mode as if the left button was not released on the second click. This behavior can be reproduced by the following sequence when running "mou= sed" with "-V" option: 1. press and hold left button 2. press and hold middle button 3. release left button 4. release middle button The X terminal will be in drag selection mode. The debug output (grepped for "moused: button.*count") for the sequence of events above when I run moused with virtual scrolling OFF is: moused: button 1 count 1 moused: button 2 count 1 moused: button 1 count 0 moused: button 2 count 0 The debug output with virtual scrolling ON: moused: button 1 count 1 moused: button 2 count 1 moused: button 2 count 1 moused: button 2 count 0 In virtual scrolling case the button 1 count never drops to 0. In current code, the SCROLL_PREPARE mode can be entered when multiple butto= ns are held pressed, and then all of them released except for the middle butto= n: if (action0.button =3D=3D MOUSE_BUTTON2DOWN) In this mode button events are not emmited: /* Defer clicks until we aren't VirtualScroll'ing. */ if (scroll_state =3D=3D SCROLL_NOTSCROLLING) r_click(&action2); Because of this, the left button release is not registered. I've attached a patch which fixes this issue for me. It allows the virtual scroll mode to be entered only if no other button was held before pressing middle button. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-237287-227>