Bug 26079

Summary: intermittent spurious button 2 events
Product: xorg Reporter: Clemens Buchacher <drizzd>
Component: Input/synapticsAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: mathieu.marquer
Version: 7.5 (2009.10)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
i915 platform: i915 features:
Bug Depends on: 27880    
Bug Blocks:    
Description Flags
xev output
drm information from dmesg none

Description Clemens Buchacher 2010-01-17 05:13:10 UTC
Created attachment 32674 [details]

I reported the same bug to the xserver-xorg-input-synaptics Debian package. Since it does not receive any attention there I thought I'd report upstream.

I recently upgraded to xorg 7.4 so I could use the Nvidia driver nouveau.
On Debian xorg 7.4 required synaptics driver version 1.2.0 or later. I can reproduce the problem with the latest git version of synaptics. The bug does not happen with xorg 7.3 + synaptics 0.14.7~git20070706-3 (Debian package).

The following symptoms lead me to believe it is a problem with the synaptics driver.

* Steps to reproduce

1. open two X terminals
2. select some text in one terminal
3. left-click the other terminal using the touchpad
4. repeat above steps several times

* Expected result

Step 3 switches window focus.

* Actual result

Step 3 switches window focus and sometimes pastes the selected text from the other terminal.

It usually takes 10-20 repetitions of the above process for this to happen.
If it does not happen, doing something else like switching windows usually
helps trigger the problem again.

I was able to reproduce this with xev (log attached). Sometimes both button
events are generated, sometimes only button 2.

I can _not_ reproduce the problem with a USB mouse.

The problem is especially annoying in firefox, where button 2 causes tabs to
be closed and the pasted text is interpreted as URLs to be opened. It's also
annoying when the clipboard contents get pasted on IRC.

-- System Information:
Debian Release: 5.0.3
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.33-rc1-00366-g2f99f5c (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xserver-xorg-input-synaptics depends on:
ii  libc6                         2.10.2-2   GNU C Library: Shared libraries
ii  libpciaccess0                 0.10.3-1   Generic PCI access library for X
ii  libpixman-1-0                 0.16.2-1   pixel-manipulation library for X a
ii  libx11-6                      2:1.3.2-1  X11 client-side library
ii  libxi6                        2:1.2.1-2  X11 Input extension library
ii  xserver-xorg-core             2:1.6.5-1  Xorg X server - core server

xserver-xorg-input-synaptics recommends no packages.

Versions of packages xserver-xorg-input-synaptics suggests:
pn  gpointing-device-settings     <none>     (no description available)
pn  touchfreeze                   <none>     (no description available)
Comment 1 Clemens Buchacher 2010-01-17 05:14:12 UTC
Created attachment 32675 [details]
Comment 2 Clemens Buchacher 2010-01-17 05:14:28 UTC
Created attachment 32676 [details]
Comment 3 Clemens Buchacher 2010-01-17 05:14:58 UTC
Created attachment 32677 [details]
xev output
Comment 4 Clemens Buchacher 2010-01-17 05:15:49 UTC
Created attachment 32678 [details]
drm information from dmesg
Comment 5 Clemens Buchacher 2010-01-17 05:16:39 UTC
The Debian bug is #563045.

Comment 6 Mathieu Marquer 2010-02-27 11:51:02 UTC
I'm using Ubuntu 9.10 on a Dell Vostro 1500, and this bug started to occur when I upgraded to kernel 2.6.33 (available at http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/)

Clicking on the left button of my touchpad may randomly result as a right click or a middle click.

My synaptics package is 1.1.2-1ubuntu7 (same as Debian Sid + a few Ubuntu patches), Xorg is 7.4.
Comment 7 Clemens Buchacher 2010-02-27 12:24:42 UTC
On Sat, Feb 27, 2010 at 11:51:02AM -0800, bugzilla-daemon@freedesktop.org wrote:

> My synaptics package is 1.1.2-1ubuntu7 (same as Debian Sid + a few Ubuntu
> patches), Xorg is 7.4.

I have recently upgraded to Xorg 7.5 and the latest nouveau linux kernel
(ea0a1d5), since current nouveau drm does not work with vanilla kernels. The
problem has since gone away. [*]

Other related (Debian) package versions are as follows. So the current
synaptics driver in Debian sid seems to be slightly more recent than yours.

ii  xserver-xorg                            1:7.5+3
ii  xserver-xorg-core                       2:1.7.4-2
ii  xserver-xorg-input-evdev                1:2.3.2-3
ii  xserver-xorg-input-kbd                  1:1.4.0-1
ii  xserver-xorg-input-mouse                1:1.5.0-1
ii  xserver-xorg-input-synaptics            1.2.1-1
ii  xserver-xorg-video-fbdev                1:0.4.1-1
ii  xserver-xorg-video-v4l                  1:0.2.0-4

[*] I can not be absolutely certain that this upgrade fixed the problem,
since there have had other upgrades before that and I had the
middle mouse button deactivated (xmodmap -e 'pointer = 1 0 3') until this
latest upgrade.
Comment 8 Clemens Buchacher 2010-04-09 02:02:10 UTC
(In reply to comment #7)
> On Sat, Feb 27, 2010 at 11:51:02AM -0800, bugzilla-daemon@freedesktop.org wrote:
> I have recently upgraded to Xorg 7.5 and the latest nouveau linux kernel
> (ea0a1d5), since current nouveau drm does not work with vanilla kernels. The
> problem has since gone away. [*]

Turns out that latest nouveau at that time was still based on 2.6.32. I recently upgraded to latest nouveau again (2.6.34-rc2-00742-ga2b2091), and the bug reappeared. Obviously nouveau is now based on 2.6.34-rc2. I'm going to try and bisect -- which might take a while...
Comment 9 Clemens Buchacher 2010-04-10 15:18:50 UTC
Ok, I managed to bisect the bug to commit 315eb996 (Input: psmouse - rework setting of BTN_MIDDLE capability) with a vanilla kernel. Reverting the commit in 2.6.34-rc2 also seems to fix the problem. I will report this to lkml after some more testing.
Comment 10 Clemens Buchacher 2010-04-11 00:57:26 UTC
Kernel bug report: https://bugzilla.kernel.org/show_bug.cgi?id=15755
Comment 11 Clemens Buchacher 2010-04-13 02:57:25 UTC
The reason for the button 2 events was the multifinger click feature. It was disabled previously to kernel version 2.6.33, because the kernel used to report a 3-button device. Either way, it can be disabled by setting the configuration option ClickFinger3 to 1, i.e.,

# /etc/X11/xorg.conf
Section "InputDevice"
    Identifier     "Synaptics Touchpad"
    Driver         "synaptics"
    Option         "CorePointer"
    Option         "SendCoreEvents" "true"
    Option         "Device" "/dev/input/mice"
    Option         "Protocol" "auto-dev"
    Option         "ClickFinger3" "1"

Since this triggers way too easily by accident, I would like to ask that this feature be disabled by default. That way, behavior also doesn't change on a kernel upgrade.
Comment 12 Peter Hutterer 2010-04-28 22:18:50 UTC
good point, I agree here.
since this is a defaults change, I'd like to have this archived on the list, see the thread here:

Note that at least with the last configuration applied here, this may not be everything you need, as the required fields has_left and has_middle are not set for backends other than the eventcom backend. for the hotplugging case however, this should work
Comment 13 Peter Hutterer 2010-05-03 21:45:54 UTC
Pushed, thanks for tracking this bug down.

commit 776ec0ed42616769ed834b5822df3b2b0d5c0e85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 29 15:03:55 2010 +1000

    Disable ClickFinger for touchpads with more than one physical button (#26079)
Comment 14 Clemens Buchacher 2010-05-03 23:52:57 UTC
On Mon, May 03, 2010 at 09:45:54PM -0700, bugzilla-daemon@freedesktop.org wrote:

> Pushed, thanks for tracking this bug down.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.