[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#954730: xterm: two press events sent for single press/release of mouse buttons 6 and 7



On Sun, Mar 22, 2020 at 07:58:39PM -0400, Thomas Dickey wrote:
> On Sun, Mar 22, 2020 at 11:38:00PM +0900, Bill Currie wrote:
> > Package: xterm
> > Version: 353-1
> > Severity: normal
> > 
> > Dear Maintainer,
> > 
> > While developing a console based application using ncurses running under
> > an exterm, I noticed I was getting double events for the side-scrolling
> > buttons on my mouse (Elecom Huge: 12 buttons (including side-scrolling
> > on the wheel)). Upon investigation, I found that while X itself is
> > sending a press event followed immediately by a release event for
> > buttons 6 and 7, I found that my program was recieving two press events
> > for each press of either button 6 or 7
> 
> odd - in vttest (see attached log), I'm seeing only one event for each
> press (using the rather clumsy Logitech wheel mouse).
> 
> > \x27[<0;14;24M      <- button 1 pressed
> > \x27[<0;14;24m      <- button 1 preleased
> > \x27[<66;14;24M     <- button 6 presssed ONCE
> > \x27[<66;14;24M
> > \x27[<67;14;24M     <- button 7 presssed ONCE
> > \x27[<67;14;24M
> > \x27[<65;14;24M     <- one click turning scroll one way
> > \x27[<64;14;24M     <- one click turning scroll the other way way
> 
> With your program, I can see this - something to investigate...

Actually it's a bug in X (or whatever component is responsible for this).

I can see that in xterm's debug-trace.  Besides the duplicate event,
the serial number isn't being updated properly.

It's also reproducible with st.

None of the other terminal emulators in Debian gave usable results,
which is typical - no need to add to the FAQ :-)

Filtering consecutive duplicate events seems like a suitable workaround.
I'll do that.

-- 
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net

Attachment: signature.asc
Description: PGP signature


Reply to: