PenMount PM1300A and Evdev Third Button Emulation

Harry Mallon Harry at codexdigital.com
Thu Jun 16 11:43:51 UTC 2016


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)?

Harry


Harry Mallon

CODEX | Software Engineer

60 Poland Street | London | England | W1F 7NT

E harry at codexdigital.com<mailto:harry at codexdigital.com> | T +44 203 7000 989<callto:+44%20203%207000%20989>

Website<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>

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg/attachments/20160616/e6c70cca/attachment.html>


More information about the xorg mailing list