[Samsung XE700T1C-A01CA] Unable to set third button emulation on Atmel touchscreen

Bug #1084938 reported by Aptorian on 2012-11-30
56
This bug affects 11 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-evdev (Ubuntu)
Low
Unassigned

Bug Description

My machine is the new Samsung XE700T1C-A01CA, aka ATIV SmartPC Pro. It has the same touchscreen as the previous Series 7 slate, the Atmel maXTouch Digitizer.

I modified /usr/share/X11/xorg.conf.d/10-evdev.conf to add the following options to the touchscreen section:

        Option "EmulateThirdButton" "1"
        Option "EmulateThirdButtonButton" "3"
        Option "EmulateThirdButtonTimeout" "750"
        Option "EmulateThirdButtonThreshold" "50"

and restarted X. Running xinput list-props shows that these properties are indeed set for the Atmel touchscreen device. However, when I touch and hold my finger in the same spot on the screen, nothing happens!

I'm not sure what other files or output dumps would be useful for this bug (I'm a programmer but consider me a user as far as this stuff is concerned), so please let me know what else would be helpful and I will include it.

Aptorian (christopher-kahn) wrote :
Aptorian (christopher-kahn) wrote :
summary: - evdev EmulateThirdButton doesn't work
+ evdev settings doesn't work at all

UPDATE: I've been playing around with this some more. None of the evdev settings work or have any affect on the touchscreen. "Evdev Axis Inversion" and "Evdev Axes Swap" do nothing. Changing the "Coordinate Transformation Matrix" has some effect, but doesn't work correctly.

For example, the default matrix is the identity matrix:

⎡ 1 0 0 ⎤
⎜ 0 1 0 ⎥
⎣ 0 0 1 ⎦

To rotate the screen counterclockwise by 90 degrees, I would expect to use the following matrix =

⎡ 0 -1 1 ⎤
⎜ 1 0 0 ⎥
⎣ 0 0 1 ⎦

set using xinput set-prop 10 130 0, 1, 0, -1, 0, 1, 0, 0, 1

It "sort of" work but the mouse flickers all over the place and jumps when I lift my finger. Using xinput --test reveals that the while, for example, a button press event happens at coordinates (3636, 3673), the corresponding release event happens at (469, 422) in the opposite corner of the screen.

I wonder if it's related to this bug: https://bugs.freedesktop.org/show_bug.cgi?id=54777 I haven't tried building the driver without mtdev.

Trent Piepho (tpiepho) wrote :

The problem with the coordinate transform matrix not working is solved by this patch: http://patchwork.freedesktop.org/patch/12471/

These touchscreens sometimes only send one axis if the other axis hasn't changed. The server would take the new untransformed X axis sent by the screen and the saved, *post-transform*, value of the Y axis, and then apply the transform to that. The patch fixes it to take the new X axis and a saved pre-tranform Y axis and transform that.

I can also confirm that emulate third button appears to be totally non-functional with an atmel touchscreen.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Confirmed
Trent Piepho (tpiepho) wrote :

Upon looking at the code in evdev, it's clear the third button emulation is completely non-functional for multitouch devices.

The emulation is triggered by calling Evdev3BEmuFilterEvent() from EvdevPostQueuedEvents() in evdev.c. This is done for events of type EV_QUEUE_BTN only. With a multitouch touchscreen, events of this type aren't generated. Instead, the events are EV_QUEUE_TOUCH, which will never trigger the 3BEmu code.

These touch events don't work the same way as button events, so it's not a simple matter of passing them to Evdev3BEmuFilterEvent() too.

Aptorian, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p xserver-xorg-input-evdev REPLACE-WITH-BUG-NUMBER

Please note, given that the information from the prior release is already available, doing this on a release prior to the development one would not be helpful.

Thank you for your understanding.

Helpful bug reporting tips:
https://wiki.ubuntu.com/ReportingBugs

Changed in xserver-xorg-input-evdev (Ubuntu):
importance: Undecided → Low
status: Confirmed → Incomplete
vasya (vasiliy-boytsov-d) wrote :

I've tested this on daily image, and there is no right-click emulation still.
calibration.conf
Section "InputClass"
        Identifier "calibration"
        MatchProduct "ELAN Touchscreen"
        Option "Calibration" "6 3606 14 2033"
        Option "EmulateThirdButton" "1"
        Option "EmulateThirdButtonTimeout" "75"
        Option "EmulateThirdButtonMoveThreshold" "300"
EndSection

vasya (vasiliy-boytsov-d) wrote :

My device is Acer iconia W700.

vasya, thank you for your comment. So your hardware and problem may be tracked, could you please file a new report by executing the following in a terminal:
ubuntu-bug xorg

Please ensure you have xdiagnose installed, and that you click the Yes button for attaching additional debugging information.

For more on this, please see the official Ubuntu documentation:
Ubuntu X.Org Team, Ubuntu Bug Control, and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

Please note, not filing a new report will delay your problem being addressed as quickly as possible.

Thank you for your understanding.

tags: added: needs-trusty-test
Davide Depau (depau) on 2014-07-31
Changed in xserver-xorg-input-evdev (Ubuntu):
status: Incomplete → New
Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Incomplete

ApportVersion: 2.14.1-0ubuntu3.4
Architecture: amd64
CurrentDesktop: Unity
DistUpgraded: 2014-04-18 09:55:47,870 DEBUG enabling apt cron job
DistroCodename: trusty
DistroRelease: Ubuntu 14.04
DistroVariant: ubuntu
InstallationDate: Installed on 2013-10-15 (341 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Beta amd64 (20131007)
MachineType: ASUSTeK COMPUTER INC. X202E
Package: xserver-xorg-input-evdev 1:2.8.2-1ubuntu2
PackageArchitecture: amd64
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.13.0-36-generic.efi.signed root=UUID=bcc104a1-a7cd-4485-b9ff-bf585e1eec22 ro quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 3.13.0-36.63-generic 3.13.11.6
Tags: trusty ubuntu
Uname: Linux 3.13.0-36-generic x86_64
UpgradeStatus: Upgraded to trusty on 2014-04-18 (157 days ago)
UserGroups: adm cdrom dip libvirtd lpadmin plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 06/20/2013
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: X202E.210
dmi.board.asset.tag: ATN12345678901234567
dmi.board.name: X202E
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: 1.0
dmi.chassis.asset.tag: No Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK COMPUTER INC.
dmi.chassis.version: 1.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrX202E.210:bd06/20/2013:svnASUSTeKCOMPUTERINC.:pnX202E:pvr1.0:rvnASUSTeKCOMPUTERINC.:rnX202E:rvr1.0:cvnASUSTeKCOMPUTERINC.:ct10:cvr1.0:
dmi.product.name: X202E
dmi.product.version: 1.0
dmi.sys.vendor: ASUSTeK COMPUTER INC.
version.compiz: compiz 1:0.9.11.2+14.04.20140714-0ubuntu1
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.52-1
version.libgl1-mesa-dri: libgl1-mesa-dri 10.1.3-0ubuntu0.1
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 10.1.3-0ubuntu0.1
version.xserver-xorg-core: xserver-xorg-core 2:1.15.1-0ubuntu2.1
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.8.2-1ubuntu2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:7.3.0-1ubuntu3.1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.910-0ubuntu1.1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.10-1ubuntu2
xserver.bootTime: Mon Sep 22 14:49:59 2014
xserver.configfile: default
xserver.errors:
 evdev: Atmel Atmel maXTouch Digitizer: ioctl EVIOCGBIT for bitmask in EvdevOpenMTDev failed: Inappropriate ioctl for device
 Atmel Atmel maXTouch Digitizer: Couldn't open mtdev device
 PreInit returned 2 for "Atmel Atmel maXTouch Digitizer"
xserver.logfile: /var/log/Xorg.0.log
xserver.outputs:
 product id 12380
 vendor AUO
xserver.version: 2:1.15.1-0ubuntu2.1

tags: added: apport-collected trusty ubuntu

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

The same issue like written in "Bug Description".
My mashine is ASUS X202E.

Trent Piepho (tpiepho) wrote :

There really isn't any mystery here. 3 button emulation only works for BUTTON events. This touchscreen generates TOUCH events. It's totally different kind of event than a mouse button getting clicked. 3 button emu doesn't exist for touch events.

Balazs Pere (perebal-sze) wrote :

O.K., I understand. But what would be the solution. I would like to use my touchscreen without mouse. But without mouse I haven't got right mouse button. Touch and hold my finger on the screen should replace the right click. I tried out easystroke with half success. Touch and hold worked, but the scrolling (e.g. in nautilus or evince) by sliding myfinger on the screen was switched off by easystroke.

Trent Piepho (tpiepho) wrote :

There isn't one. Trying to use a touchscreen to run regular desktop linux has major usability problems, as I'm sure you've noticed!

My point is there is no mystery bug or hardware problem that's going to be solved by looking in logs. evdev's buttom emulation only works for touch pads, not touch screens.

Balazs Pere (perebal-sze) wrote :

Maybe it has usability problems, but in many cases the touchscreen is more confortable than a mouse. I don't believe that it is impossible or very difficult to modify the code so that a touchscreen behave similarly (or the same way) as the touchpad or mouse. In win8 Microsoft could do this. Canonical way not able to do?

Balazs Pere, thank you for your comment. Unfortunately, this bug report is not scoped to you, or your problem. So your hardware and problem may be tracked, could you please file a new report by executing the following in a terminal:
ubuntu-bug xorg

Please ensure you have xdiagnose installed, and that you click the Yes button for attaching additional debugging information.

For more on this, please see the official Ubuntu documentation:
Ubuntu X.Org Team, Ubuntu Bug Control, and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

As well, please do not announce in this report you created a new bug report.

Thank you for your understanding.

tags: added: needs-utopic-test
removed: apport-collected needs-trusty-test trusty ubuntu
summary: - evdev settings doesn't work at all
+ [Samsung XE700T1C-A01CA] Unable to set third button emulation on Atmel
+ touchscreen
Yuval Adam (yuv-adm) wrote :

Fellow (Arch) Linux user here, can anyone confirm that at this moment xorg xinput doesn't support scroll emulation from evdev touch events - at all?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.