XPS 13 touchpad: Quickly clicking touchpad results in double click (with tap to click)

Bug #1055788 reported by Dylan McCall on 2012-09-24
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Dell Sputnik
Undecided
Kyle Fazzari
linux (Ubuntu)
Undecided
Kyle Fazzari
Precise
Undecided
Kyle Fazzari
Quantal
Undecided
Kyle Fazzari

Bug Description

When tap to click is enabled, a quick press of the touchpad's physical button will be interpreted as two clicks: one click from the tap, one click from the button. Instead, a virtual click should not be generated when the touchpad button is being pressed.

summary: - Quickly clicking touchpad results in double click (with tap to click)
+ XPS 13 touchpad: Quickly clicking touchpad results in double click (with
+ tap to click)
Kamal Mostafa (kamalmostafa) wrote :

Thanks for reporting this problem, but I don't seem to be able to reproduce it on my XPS 13 running the kernel version "3.2.0-31-generic #50+kamal9~DellXPS x86_64".

I'm testing by running the following command from a terminal window: xev | grep Button

Clicking the physical buttons always yield only one ButtonPress event followed by one ButtonRelease event when I release the button. Same for tapping the pad: just one ButtonPress/ButtonRelease pair is observed. I'm not seeing any extraneous events in any situation.

@Dylan, do you see different behavior when you do that xev test? When you say "a quick press of the touchpad's physical button", do you just mean "click the button once"?

Changed in dell-sputnik:
status: New → Incomplete
Dylan McCall (dylanmccall) wrote :

It's a little quirky, because it needs to be quick enough to quick enough to trigger tap to click. I'll make sure I have the same kernel version, and I'll see if I can demonstrate this with any testing tools :)

Kyle Fazzari (kyrofa) wrote :

I can confirm this-- the behavior is not present in the mouse button zones, but it does seem to occur over the rest of the touchpad:

$ xev | grep Button
ButtonPress event, serial 36, synthetic NO, window 0x4000001,
ButtonRelease event, serial 36, synthetic NO, window 0x4000001,
ButtonPress event, serial 36, synthetic NO, window 0x4000001,
ButtonRelease event, serial 36, synthetic NO, window 0x4000001,

Kyle Fazzari (kyrofa) wrote :

Kamal, the trick seems to be lifting your finger again quickly. Tap with enough pressure to depress the clickpad, but lift your finger fast enough to register as a tap to X. I would agree that this is a problem, but I don't know where the problem lies-- the touchpad driver or X?

Changed in dell-sputnik:
status: Incomplete → Confirmed
Kamal Mostafa (kamalmostafa) wrote :

Okay, now I do see the problem. I didn't see it before because "the behavior is not present in the mouse button zones". (In other words, when clicking the pad in the normal button zones along the bottom of the pad, it works properly).

Yes, I can also easily reproduce the reported behavior if I push (hard) in the about the middle of the pad (outside the button zones area) and then quickly release it: xev shows that two pairs of ButtonPress/Release events occur.

On the one hand, I don't think the user is 'expected' to push hard enough to actually depress the clickpad outside of the button zones at the bottom -- its very difficult to push it down that hard near the top edge, and even takes a bit more force in the middle of the pad than for the "proper" clicky button zone area along the bottom edge.

That said, I agree that the touchpad driver should certainly filter out the extra pair of ButtonPress/Release events. I think the responsibility for handling this lies with the driver, not with X.

Kyle Fazzari (kyrofa) on 2012-09-27
Changed in dell-sputnik:
assignee: nobody → Kyle Fazzari (kyle.f)
status: Confirmed → In Progress
Kyle Fazzari (kyrofa) wrote :

After some discussion with Kamal, it appears that X has the facilities to deal with this issue, but in order to do so it needs to know that this is a clickpad. The current Cypress driver doesn't let it know. I have attached a patch to rectify this issue. Please give it a test!

Kamal Mostafa (kamalmostafa) wrote :

@Kyle, I confirm that your patch does fix the problem. I'll apply it to the Sputnik PPA kernel. Please submit it for inclusion in Ubuntu Quantal, and we'll address it for Ubuntu Precise after that. Nice work, thanks!

Changed in linux (Ubuntu):
assignee: nobody → Kyle Fazzari (kyle.f)
status: New → In Progress
Kyle Fazzari (kyrofa) wrote :

@Kamal, thanks for your help! This has been submitted to Quantal.

tags: added: patch
Kyle Fazzari (kyrofa) on 2012-09-28
Changed in dell-sputnik:
status: In Progress → Fix Committed
Kamal Mostafa (kamalmostafa) wrote :

The patch has been applied to the Sputnik kernel PPA kernels, as of versions labeled 'kamal10' or higher:
https://launchpad.net/~canonical-hwe-team/+archive/sputnik-kernel

@Dylan, please test version 3.2.0-32.51+kamal10~DellXPS (available within 24 hours) and confirm that it fixes the problem. And thanks again for reporting it.

Tim Gardner (timg-tpi) on 2012-09-28
Changed in linux (Ubuntu Quantal):
status: In Progress → Fix Committed

The attachment "Fixed by setting INPUT_PROP_BUTTONPAD property. This lets xserver-xorg-input-synaptics know that the touchpad has a button underneath it so it can take care of the multiple-click-source issue." of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

Dylan McCall (dylanmccall) wrote :

Okay, I installed linux_3.5.0-16.24+kamal10~DellXPS (64-bit). I can confirm it solves the problem and I haven't noticed any regressions. Hooray! Thank you for being so excellent :)

Tim Gardner (timg-tpi) on 2012-09-28
Changed in linux (Ubuntu Precise):
assignee: nobody → Kyle Fazzari (kyle.f)
status: New → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.5.0-16.25

---------------
linux (3.5.0-16.25) quantal-proposed; urgency=low

  [ <email address hidden> ]

  * SAUCE: input: Cypress PS/2 Trackpad fix multi-source, double-click
    - LP: #1055788

  [ Tim Gardner ]

  * [Config] revert '[Config] enable CONFIG_X86_X32=y'
    - LP: #1041883

  [ Upstream Kernel Changes ]

  * vmwgfx: corruption in vmw_event_fence_action_create()
  * drm/nvd0/disp: hopefully fix selection of 6/8bpc mode on DP outputs
    - LP: #1058088
  * drm/nv50-/gpio: initialise to vbios defaults during init
    - LP: #1058088
  * igb: A fix to VF TX rate limit
    - LP: #1058188
  * igb: Add switch case for supported hardware to igb_ptp_remove.
    - LP: #1058188
  * igb: Support the get_ts_info ethtool method.
    - LP: #1058188
  * igb: Streamline RSS queue and queue pairing assignment logic.
    - LP: #1058188
  * igb: Update firmware info output
    - LP: #1058188
  * igb: Version bump
    - LP: #1058188
  * igb: reset PHY in the link_up process to recover PHY setting after
    power down.
    - LP: #1058188
  * igb: Fix for failure to init on some 82576 devices.
    - LP: #1058188
  * igb: correct hardware type (i210/i211) check in igb_loopback_test()
    - LP: #1058188
  * igb: don't break user visible strings over multiple lines in
    igb_ethtool.c
    - LP: #1058188
  * igb: add delay to allow igb loopback test to succeed on 8086:10c9
    - LP: #1058188
  * igb: fix panic while dumping packets on Tx hang with IOMMU
    - LP: #1058188
  * igb: Fix register defines for all non-82575 hardware
    - LP: #1058188
  * e1000e: use more informative logging macros when netdev not yet
    registered
    - LP: #1058219
  * e1000e: Cleanup code logic in e1000_check_for_serdes_link_82571()
    - LP: #1058219
  * e1000e: Program the correct register for ITR when using MSI-X.
    - LP: #1058219
  * e1000e: advertise transmit time stamping
    - LP: #1058219
  * e1000e: 82571 Tx Data Corruption during Tx hang recovery
    - LP: #1058219
  * e1000e: fix panic while dumping packets on Tx hang with IOMMU
    - LP: #1058219
  * e1000: Combining Bitwise OR in one expression.
    - LP: #1058221
  * e1000: advertise transmit time stamping
    - LP: #1058221
  * e1000: Small packets may get corrupted during padding by HW
    - LP: #1058221
  * sched: Fix migration thread runtime bogosity
    - LP: #1057593
  * ACER: Add support for accelerometer sensor
    - LP: #1055433
  * ACER: Fix Smatch double-free issue
    - LP: #1055433

  [ Wen-chien Jesse Sung ]

  * SAUCE: HID: ntrig: change default value of logical/physical
    width/height to 1
    - LP: #1044248
 -- Leann Ogasawara <email address hidden> Fri, 28 Sep 2012 14:07:41 -0700

Changed in linux (Ubuntu Quantal):
status: Fix Committed → Fix Released
Kyle Fazzari (kyrofa) on 2012-10-09
Changed in dell-sputnik:
status: Fix Committed → Fix Released
Tim Gardner (timg-tpi) on 2012-10-18
Changed in linux (Ubuntu Precise):
status: In Progress → Fix Committed
Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel (3.2.0-34.53) in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-precise' to 'verification-done-precise'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-precise
Kamal Mostafa (kamalmostafa) wrote :

Verified fixed in precise (3.2.0-34.53).

tags: added: verification-done-precise
removed: verification-needed-precise

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :
Download full text (19.5 KiB)

This bug was fixed in the package linux - 3.2.0-34.53

---------------
linux (3.2.0-34.53) precise-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #1078760

  [ Kamal Mostafa ]

  * SAUCE: input: Cypress PS/2 Trackpad list additional contributors

  [ Kyle Fazzari ]

  * SAUCE: input: Cypress PS/2 Trackpad fix multi-source, double-click
    - LP: #1055788
  * SAUCE: input: Cypress PS/2 Trackpad fix lost sync upon palm contact
    - LP: #1048258
  * SAUCE: input: Cypress PS/2 Trackpad fix taps turning into hardware
    clicks
    - LP: #1064086

  [ Tim Gardner ]

  * [Config] remove ndiswrapper from Provides:
    - LP: #1076395
  * [Config] CONFIG_HP_WATCHDOG=m for x86en
    - LP: #1076342

  [ Upstream Kernel Changes ]

  * Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..."
    - LP: #1075355
  * Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    - LP: #1075355
  * eCryptfs: check for eCryptfs cipher support at mount
    - LP: #338914
  * isci: fix isci_pci_probe() generates warning on efi failure path
    - LP: #1068162
  * mtd: nand: Use the mirror BBT descriptor when reading its version
    - LP: #1068162
  * drm/i915: prevent possible pin leak on error path
    - LP: #1068162
  * workqueue: add missing smp_wmb() in process_one_work()
    - LP: #1068162
  * TTY: ttyprintk, don't touch behind tty->write_buf
    - LP: #1068162
  * Remove BUG_ON from n_tty_read()
    - LP: #1068162
  * n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX
    - LP: #1068162
  * n_gsm: uplink SKBs accumulate on list
    - LP: #1068162
  * n_gsm : Flow control handling in Mux driver
    - LP: #1068162
  * char: n_gsm: remove message filtering for contipated DLCI
    - LP: #1068162
  * n_gsm: added interlocking for gsm_data_lock for certain code paths
    - LP: #1068162
  * n_gsm: avoid accessing freed memory during CMD_FCOFF condition
    - LP: #1068162
  * n_gsm: replace kfree_skb w/ appropriate dev_* versions
    - LP: #1068162
  * n_gsm: memory leak in uplink error path
    - LP: #1068162
  * UBI: fix autoresize handling in R/O mode
    - LP: #1068162
  * UBI: erase free PEB with bitflip in EC header
    - LP: #1068162
  * firmware: Add missing attributes to EFI variable attribute print out
    from sysfs
    - LP: #1068162
  * tools/hv: Fix exit() error code
    - LP: #1068162
  * slab: fix the DEADLOCK issue on l3 alien lock
    - LP: #1068162
  * gspca_pac7302: Add usb-id for 145f:013c
    - LP: #1068162
  * gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy
    Microphone SL-6825-SBK
    - LP: #1068162
  * xhci: Warn when hosts don't halt.
    - LP: #1068162
  * xHCI: add cmd_ring_state
    - LP: #1068162
  * xHCI: add aborting command ring function
    - LP: #1068162
  * xHCI: cancel command after command timeout
    - LP: #1068162
  * hpsa: Use LUN reset instead of target reset
    - LP: #1068162
  * rc: ite-cir: Initialise ite_dev::rdev earlier
    - LP: #1068162
  * staging: speakup_soft: Fix reading of init string
    - LP: #1068162
  * target: fix return code in target_core_init_configfs error path
    - LP: #1068162
  * powerpc/eeh: Lock module while handling EEH event
  ...

Changed in linux (Ubuntu Precise):
status: Fix Committed → Fix Released
dimovnike (dimovnike) wrote :

this bug is present on thrusty. More exactly - mouse pointer move + immediate click registers as a double click. Very annoying.

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

Other bug subscribers