In article <210205235823.M0106941%mirage.ceres.dti.ne.jp@localhost>, Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost> wrote: >Hi, > >All mice for SHARP X680x0 have only two buttons >(even the mouse protocol doesn't define a middle buttion). > >Currently the middle button is emulated by the ms(4) driver >and X68k Xserver doesn't handle "Emulate3Buttons" as the >xf86-input-mouse driver (or ancient XFree86 servers). > >However the current implementation ms(4) driver just checks >whether two (left/right) buttons are changed in the same packet. >This means it cannot handle a release event correctly if two >buttons pressed simultaneously are released in the different timing. > >I've just ported "Emulate3Buttons" functions from xf86-input-mouse >driver to our Xorg based monolithic X68k server with various >refactoring and cleanup (rewrite a magic three-dimensional array >for a finate state machine with proper named structures etc. >and separate 3 button emulation functions from other stuff) and >it workseven on the real slow X68030. > >Now I'd like to remove the middle button handling from ms(4) driver >and commit the Emulate3Buttons change for the X68k server. > >I guess the only other application that uses NetBSD/x68k's >native ms(4) protocol (derived from Sun's "Firm_event" interface) >is mlterm-fb (recently renamed to mlterm-x68kgrp) but I don't think >it heavily use the middle button so this change could be acceptable. > >The patch is attached and also in the following gist >(applicable both to HEAD and netbsd-9): > https://gist.github.com/tsutsui/6ebe82d74b11874b92b167769c312d52 > >Note the original xf86-input-mouse driver's Emulate3Buttons >implementation is here: > https://gitlab.freedesktop.org/xorg/driver/xf86-input-mouse/-/blob/xf86-input-mouse-1.9.3/src/mouse.c#L1876 > >Comments? I am fine with it, but are you planning to upstream the emulate three buttons patch to Xorg? Thanks, christos