[Bug 237287] [patch] moused(8) ignores button release events in virtual scroll mode
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Apr 14 20:57:53 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237287
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 at FreeBSD.org
Reporter: bojan_petrovic at fastmail.fm
Created attachment 203676
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=203676&action=edit
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 drag
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 "moused"
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 buttons
are held pressed, and then all of them released except for the middle button:
if (action0.button == MOUSE_BUTTON2DOWN)
In this mode button events are not emmited:
/* Defer clicks until we aren't VirtualScroll'ing. */
if (scroll_state == 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.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list