PenMount PM1300A and Evdev Third Button Emulation

Peter Hutterer peter.hutterer at who-t.net
Thu Jun 16 22:37:43 UTC 2016


On Thu, Jun 16, 2016 at 11:43:51AM +0000, Harry Mallon wrote:
> Hi Peter,
> 
> Thanks for getting back.
> 
> I have had a look into the implementation of 3rd button emulation this
> morning. If this feature were to be extended to touch points would you
> recommend altering xf86-input-evdev to not filter out touch events or
> should this option be lower down the stack? It seems xorg is responsible
> for emulating a pointer based on touches so should it be responsible for
> emulating clicks (buttons 1, 2 or 3)?

simply said - no. touch->pointer emulation in X is already terrible and
putting right click emulation on top of this would make things even more
unmanagable. touch gesture interpretation should be done by the client and
that includes right-click emulation.

Cheers,
   Peter
 
> On 16 Jun 2016, at 03:29, Peter Hutterer <peter.hutterer at who-t.net<mailto:peter.hutterer at who-t.net>> wrote:
> 
> On Tue, Jun 14, 2016 at 03:32:40PM +0000, Harry Mallon wrote:
> Hi all,
> 
> I am trying to get my PenMount PM1300A touchscreen to accept hold to right
> click (Evdev Third Button Emulation) on CentOS7. Kernel
> 3.10.0-327.18.2.el7.x86_64. xorg-x11-drv-evdev 2.9.2.
> 
> see https://bugs.freedesktop.org/show_bug.cgi?id=96494, this only just came
> up as a bug.
> 
> short answer: it's a touchscreen that doesn't emulate a left button click,
> so evdev won't reassign the button.
> 
> Cheers,
>   Peter
> 
> 
> My /etc/X11/xorg.conf contains:
> # Setup the touch screen
> Section "InputClass"
>    Identifier "PenMount Touchscreen"
>    MatchVendor "PenMount"
>    MatchProduct "PenMount PM1300A"
>    Driver "evdev"
>    Option "InvertX" "on"
>    Option "InvertY" "on"
>    Option "EmulateThirdButton" "on"
> EndSection
> 
> xinput reports:
> $ DISPLAY=:0 xinput list-props 13
> Device 'PenMount PM1300A':
> Device Enabled (136): 1
> Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
> Device Accel Profile (257): 0
> Device Accel Constant Deceleration (258): 1.000000
> Device Accel Adaptive Deceleration (259): 1.000000
> Device Accel Velocity Scaling (260): 10.000000
> Device Product ID (263): 5345, 13568
> Device Node (264): "/dev/input/event6"
> Evdev Axis Inversion (273): 1, 1
> Evdev Axis Calibration (274): <no items>
> Evdev Axes Swap (275): 0
> Axis Labels (276): "Abs MT Position X" (291), "Abs MT Position Y" (292), "None" (0), "None" (0)
> Button Labels (277): "Button Unknown" (266), "Button Unknown" (266), "Button Unknown" (266), "Button Wheel Up" (142), "Button Wheel Down" (143)
> Evdev Scrolling Distance (278): 0, 0, 0
> Evdev Middle Button Emulation (279): 0
> Evdev Middle Button Timeout (280): 50
> Evdev Third Button Emulation (281): 1
> Evdev Third Button Emulation Timeout (282): 1000
> Evdev Third Button Emulation Button (283): 3
> Evdev Third Button Emulation Threshold (284): 20
> Evdev Wheel Emulation (285): 0
> Evdev Wheel Emulation Axes (286): 0, 0, 4, 5
> Evdev Wheel Emulation Inertia (287): 10
> Evdev Wheel Emulation Timeout (288): 200
> Evdev Wheel Emulation Button (289): 4
> Evdev Drag Lock Buttons (290): 0
> 
> $ DISPLAY=:0 xinput test-xi2 13
> PenMount PM1300A                         id=13 [slave  pointer  (2)]
> Reporting 4 classes:
> Class originated from: 13. Type: XIButtonClass
> Buttons supported: 5
> Button labels: "Button Unknown" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down"
> Button state:
> Class originated from: 13. Type: XIValuatorClass
> Detail for Valuator 0:
>  Label: Abs MT Position X
>  Range: 0.000000 - 2047.000000
>  Resolution: 0 units/m
>  Mode: absolute
>  Current value: 1443.000000
> Class originated from: 13. Type: XIValuatorClass
> Detail for Valuator 1:
>  Label: Abs MT Position Y
>  Range: 0.000000 - 2047.000000
>  Resolution: 0 units/m
>  Mode: absolute
>  Current value: 240.000000
> Class originated from: 13. Type: XITouchClass
> Touch mode: direct
> Max number of touches: 10
> 
> I have tested with a usb mouse and I can successfully get "Button 3" working in xinput test when using a similar configuration, but not the touchscreen.
> 
> I have seen a couple of bugs like this while searching but they all seem to have expired without clearly being fixed. Are these still current?
> https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/1084938
> https://bbs.archlinux.org/viewtopic.php?id=187970
> 
> 
> Yours,
> Harry
> 
> Harry Mallon
> 
> CODEX | Software Engineer
> 
> 60 Poland Street | London | England | W1F 7NT
> 
> E harry at codexdigital.com<mailto:harry at codexdigital.com><mailto:harry at codexdigital.com> | T +44 203 7000 989<callto:+44%20203%207000%20989>
> 
> Website<www.codexdigital.com<http://www.codexdigital.com/>> | Facebook<https://www.facebook.com/codexdigital> | Twitter<http://twitter.com/codexdigital>
> 
> [http://www.codexdigital.com/?action=asset&id=E55D8A6F-AF62-4978-8FF1-435A85AFADBF]<http://www.codexdigital.com><http://www.codexdigital.com/?action=asset&id=E55D8A6F-AF62-4978-8FF1-435A85AFADBF]%3Chttp://www.codexdigital.com%3E>
> 
> _______________________________________________
> xorg at lists.x.org<mailto:xorg at lists.x.org>: X.Org<http://x.org/> support
> Archives: http://lists.freedesktop.org/archives/xorg
> Info: https://lists.x.org/mailman/listinfo/xorg
> Your subscription address: %(user_address)s
> 


More information about the xorg mailing list