dx-packages team mailing list archive
-
dx-packages team
-
Mailing list archive
-
Message #22541
[Bug 1310518] Re: Touch screen and touchpad lost click function after quickly tapped dash home repeatly by touch screen
My findings about this bug, so far:
The problem is that there's a mouse grab by compiz at some point, that is caused by the XGrabButton call in updatePassiveButtonGrabs in window.cpp:
[...]
else
{
/* Grab all buttons */
XGrabButton (screen->dpy (),
AnyButton,
AnyModifier,
serverFrame, false,
ButtonPressMask | ButtonReleaseMask | ButtonMotionMask,
GrabModeSync,
GrabModeAsync,
None,
None);
[...]
(I verified that this by replacing the default mouse pointer shape with
the XC_pirate: when the bug occured the pointer changed to a pirate
head.)
This grab is used by compiz for windows that don't have the focus: when
the user clicks inside a window, compiz grabs the mouse so that the
mouse events are handled by compiz and not by the window. That's useful
in case someone needs to raise a window by clicking on it as opposed to
clicking on its frame for example.
The XGrabButton uses the GrabModeSync. According to the XGrabPointer manpage:
if the pointer mode is GrabModeSync the state of the pointer, as seen by client applications, appears to freeze, and the X server generates no further pointer events until the grabbing client calls XAllowEvents or until the pointer grab is released. Actual pointer changes are not lost while the pointer is frozen; they are simply queued in the server for later processing.
(that's why we can't click anywhere after this grab occurs)
I believe that a race condition related to the grabs/ungrabs is
triggered here and it's difficult to be found because the passive grab
is initiated by the xserver when the conditions set by the XGrabButton
call are satisfied, so backtraces are not really helpful.
--
You received this bug notification because you are a member of DX
Packages, which is subscribed to unity in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1310518
Title:
Touch screen and touchpad lost click function after quickly tapped
dash home repeatly by touch screen
Status in OEM Priority Project:
Triaged
Status in OEM Priority Project precise series:
New
Status in OEM Priority Project trusty series:
New
Status in Unity:
Triaged
Status in Unity 7.2 series:
Triaged
Status in “unity” package in Ubuntu:
Triaged
Bug description:
Touch screen and touchpad lost click function after quickly tapped
dash home repeatly by touch screen, Installed 14.04, still have same
issue.
Quickly tapped dash home more than three times by touch screen.Found
touch screen and touchpad lost click function.
Note:
1.When this issue occured, cursor still can be moved by touch screen/touchpad.
2.When this issue occured ,click/double click by touch screen/touchpad,left click/right click by touchpad all were not workable.
Steps to Reproduce:
1.install 12.04.4 image or 14.04 image, boot into Ubuntu OS.
2.Quickly tapped dash home more than three times by touch screen.
3.Found touch screen and touchpad lost click function.
This bug is reported from private OEM project, also check
https://launchpad.net/bugs/1297067
======
using xinput --query-state can actually see the button press event
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ syntp id=6 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=11 [slave pointer (2)]
#xinput --query-state 11
2 classes :
ButtonClass
button[1]=up
button[2]=up
button[3]=up
button[4]=up
button[5]=up
ValuatorClass Mode=Absolute Proximity=In
valuator[0]=398
valuator[1]=1652
valuator[2]=5
valuator[3]=3
valuator[4]=0
valuator[5]=399
valuator[6]=1653
#xinput --query-state 6
2 classes :
ButtonClass
button[1]=down
button[2]=up
button[3]=up
button[4]=up
button[5]=up
button[6]=up
button[7]=up
button[8]=up
ValuatorClass Mode=Relative Proximity=In
valuator[0]=1
valuator[1]=394
touchpad's button and touchpanel's
valuator[2] and valuator[3] will changed after we press the button (or monitor)
Also I found press "super" on keyboard will recover the
touchscreen/touchpad loss.
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unity 5.20.0-0ubuntu3
ProcVersionSignature: Ubuntu 3.11.0-18.32~precise1-generic 3.11.10.4
Uname: Linux 3.11.0-18-generic x86_64
ApportVersion: 2.0.1-0ubuntu17.6
Architecture: amd64
CompizPlugins: [core,commands,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
Date: Mon Apr 21 16:50:04 2014
DistributionChannelDescriptor:
# This is a distribution channel descriptor
# For more information see http://wiki.ubuntu.com/DistributionChannelDescriptor
canonical-oem-stella-daan2-precise-amd64-20140416-1
InstallationMedia: Ubuntu 12.04 "Precise" - Failed to find casper uuid.conf in 'binary/casper/initrd.img-3.11.0-18-generic.old-dkms' LIVE Binary 20140416-06:52
MarkForUpload: True
ProcEnviron:
LANGUAGE=en_US:
TERM=xterm
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: unity
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/1310518/+subscriptions
References