** Description changed:
+ SRU Criteria
+ ============
+ [Impact]
+ Touchscreen input handling is broken in many ways in the Precise X server.
The issues include crashes, events sent to the wrong window, broken grabs,
memory leaks, and Compiz and toolkit pop-up menu breakage.
+
+ [Upstream Fixes]
+ http://cgit.freedesktop.org/~cndougla/xserver/log/?h=input-fixes
+
+ All commits were developed specifically for this bug. I just kept
+ unraveling issues until things worked properly on my touchscreen. A high
+ level overview of the impact of the fixes:
+
+ * Crash or events sent to the wrong windows due to inappropriate casting and
memory accesses:
+ - Check core event mask properly for pointer emulated touch events
+ - Only set XI2 mask if pointer emulation is for XI2 client
+ - Check other clients' core masks properly when adding touch listener
+ * Non-functional changes required for subsequent fixes:
+ - Split out helper function TouchListenerAcceptReject()
+ - Rename TouchEnsureSprite to TouchBuildSprite and event type checks
+ * Fixes for internal touch and pointer records remaining in an open state,
leading to memory leaks and potentially input locking up:
+ - Accept touch sequence for pointer listener after second event delivery
+ - When deactivating an explicit pointer grab, reject all grabs on touches
+ - Ensure touch is ended when last listener is rejected
+ * Fixes for event and server time issues, which lead to grab and ungrab
requests being rejected or unhandled:
+ - Fix copy/paste error from before git history in UpdateCurrentTimeIf()
+ - Update currentTime in dispatch loop
+ - Replay original touch begin event instead of generated begin event
+ * Don't send end event to accepting client if touch hasn't physically ended:
+ - On touch accept, only process end event for owner if it has seen the end
+ * Don't prematurely end touches and deactivate implicit grabs if a touch end
event is emitted in response to something other than the touch physically
ending:
+ - End a pointer emulated touch event only on a "real" end event
+ - Don't deactivate implicit pointer grab on fake touch end event
+ * Fix toolkit pop-up menus so when you touch the menu, it opens, and then you
drag to select an item before lifting the menu will receive the events:
+ - When activating an explicit grab, update owning listener
+ * Fix dragging a Compiz window by touching the title bar using a touchscreen:
+ - Create a new dix touch record for an emulated touch with no listeners
+ - Update device state including when touch record does not exist
+
+ [Development Fix]
+ The Q series is not open yet, so there is no development fix.
+
+ [Stable Fix]
+ The upstream fixes have been squashed and rebased into one patch for
xorg-server. The patch has been attached.
+
+ [Regression Potential]
+ Many patches only affect touch pointer emulation, which only affects
touchscreens. The code paths modified should have no regression potential for
other usages. Some of the other patches affect touch handling in general. These
could impact gestures for trackpads, but traditional trackpad pointing and
clicking does not go through these code paths. The server time fixes that are
not touch-specific are small and merely keep the server time more up to date
than it currently is. There could be a regression potential here for input
device grabbing, but it is unlikely.
+
+ Original Bug Report
+ ===================
Hi,
similar to #949791 ...
that bug made things better (i can now move windows using the touch
screen) but it still often stops to react to any clicks when using
touch.
I just updated.
In unity 3d (not in unity 2d nor in gnome shell) if i touch the top bar
without any program running it most of the time stops to react to any
clicks (both touch and clicks of the touch pad buttons). I cannot
reproduce it always with the first touch but usually latest with 2 or 3.
i am not sure what happens but after something around a minute it starts
to work again ..... i tried the super key to open the dash and then it
suddenly worked again. I'm sorry but i can't say exactly what happens.
this happened like 2 or 3 times in this session, so maybe you see
something in the logs ubuntu-bug attaches.
If you need more info i'll do my best to provide it.
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unity 5.8.0-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14
Uname: Linux 3.2.0-22-generic x86_64
.tmp.unity.support.test.0:
-
+
ApportVersion: 2.0-0ubuntu4
Architecture: amd64
CompizPlugins:
[core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
CompositorRunning: compiz
Date: Fri Apr 6 08:53:14 2012
DistUpgraded: 2012-03-11 11:16:56,683 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MachineType: Acer Aspire 1825PTZ
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-22-generic
root=UUID=3edf82f9-f9ff-489c-8b24-2ffb824a9cd1 ro quiet splash vt.handoff=7
SourcePackage: unity
UpgradeStatus: Upgraded to precise on 2012-03-11 (25 days ago)
dmi.bios.date: 04/23/2010
dmi.bios.vendor: INSYDE
dmi.bios.version: V1.3127
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: JM12-MS-CAP
dmi.board.vendor: Acer
dmi.board.version: Base Board Version
dmi.chassis.type: 10
dmi.chassis.vendor: Chassis Manufacturer
dmi.chassis.version: Chassis Version
dmi.modalias:
dmi:bvnINSYDE:bvrV1.3127:bd04/23/2010:svnAcer:pnAspire1825PTZ:pvrV1.3127:rvnAcer:rnJM12-MS-CAP:rvrBaseBoardVersion:cvnChassisManufacturer:ct10:cvrChassisVersion:
dmi.product.name: Aspire 1825PTZ
dmi.product.version: V1.3127
dmi.sys.vendor: Acer
version.compiz: compiz 1:0.9.7.4-0ubuntu2
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.2-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.2-0ubuntu3
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu10
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati
1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau
1:0.0.16+git20111201+b5534a1-1build2
** Also affects: xorg-server (Ubuntu Precise)
Importance: Medium
Assignee: Chase Douglas (chasedouglas)
Status: In Progress
** Changed in: xorg-server (Ubuntu Precise)
Importance: Medium => High
** Description changed:
SRU Criteria
============
[Impact]
Touchscreen input handling is broken in many ways in the Precise X server.
The issues include crashes, events sent to the wrong window, broken grabs,
memory leaks, and Compiz and toolkit pop-up menu breakage.
[Upstream Fixes]
http://cgit.freedesktop.org/~cndougla/xserver/log/?h=input-fixes
All commits were developed specifically for this bug. I just kept
unraveling issues until things worked properly on my touchscreen. A high
level overview of the impact of the fixes:
* Crash or events sent to the wrong windows due to inappropriate casting and
memory accesses:
- - Check core event mask properly for pointer emulated touch events
- - Only set XI2 mask if pointer emulation is for XI2 client
- - Check other clients' core masks properly when adding touch listener
+ - Check core event mask properly for pointer emulated touch events
+ - Only set XI2 mask if pointer emulation is for XI2 client
+ - Check other clients' core masks properly when adding touch listener
* Non-functional changes required for subsequent fixes:
- - Split out helper function TouchListenerAcceptReject()
- - Rename TouchEnsureSprite to TouchBuildSprite and event type checks
+ - Split out helper function TouchListenerAcceptReject()
+ - Rename TouchEnsureSprite to TouchBuildSprite and event type checks
* Fixes for internal touch and pointer records remaining in an open state,
leading to memory leaks and potentially input locking up:
- - Accept touch sequence for pointer listener after second event delivery
- - When deactivating an explicit pointer grab, reject all grabs on touches
- - Ensure touch is ended when last listener is rejected
+ - Accept touch sequence for pointer listener after second event delivery
+ - When deactivating an explicit pointer grab, reject all grabs on touches
+ - Ensure touch is ended when last listener is rejected
* Fixes for event and server time issues, which lead to grab and ungrab
requests being rejected or unhandled:
- - Fix copy/paste error from before git history in UpdateCurrentTimeIf()
- - Update currentTime in dispatch loop
- - Replay original touch begin event instead of generated begin event
+ - Fix copy/paste error from before git history in UpdateCurrentTimeIf()
+ - Update currentTime in dispatch loop
+ - Replay original touch begin event instead of generated begin event
* Don't send end event to accepting client if touch hasn't physically ended:
- - On touch accept, only process end event for owner if it has seen the end
+ - On touch accept, only process end event for owner if it has seen the end
* Don't prematurely end touches and deactivate implicit grabs if a touch end
event is emitted in response to something other than the touch physically
ending:
- - End a pointer emulated touch event only on a "real" end event
- - Don't deactivate implicit pointer grab on fake touch end event
+ - End a pointer emulated touch event only on a "real" end event
+ - Don't deactivate implicit pointer grab on fake touch end event
* Fix toolkit pop-up menus so when you touch the menu, it opens, and then you
drag to select an item before lifting the menu will receive the events:
- - When activating an explicit grab, update owning listener
+ - When activating an explicit grab, update owning listener
* Fix dragging a Compiz window by touching the title bar using a touchscreen:
- - Create a new dix touch record for an emulated touch with no listeners
- - Update device state including when touch record does not exist
+ - Create a new dix touch record for an emulated touch with no listeners
+ - Update device state including when touch record does not exist
[Development Fix]
The Q series is not open yet, so there is no development fix.
[Stable Fix]
- The upstream fixes have been squashed and rebased into one patch for
xorg-server. The patch has been attached.
+ The upstream fixes have been squashed and rebased into one patch for the
Precise xorg-server. The patch has been attached.
+
+ The touch code has been completely rewritten from the prototype
+ implementation in previous Ubuntu releases, so these changes have not
+ been nominated for them.
[Regression Potential]
Many patches only affect touch pointer emulation, which only affects
touchscreens. The code paths modified should have no regression potential for
other usages. Some of the other patches affect touch handling in general. These
could impact gestures for trackpads, but traditional trackpad pointing and
clicking does not go through these code paths. The server time fixes that are
not touch-specific are small and merely keep the server time more up to date
than it currently is. There could be a regression potential here for input
device grabbing, but it is unlikely.
Original Bug Report
===================
Hi,
similar to #949791 ...
that bug made things better (i can now move windows using the touch
screen) but it still often stops to react to any clicks when using
touch.
I just updated.
In unity 3d (not in unity 2d nor in gnome shell) if i touch the top bar
without any program running it most of the time stops to react to any
clicks (both touch and clicks of the touch pad buttons). I cannot
reproduce it always with the first touch but usually latest with 2 or 3.
i am not sure what happens but after something around a minute it starts
to work again ..... i tried the super key to open the dash and then it
suddenly worked again. I'm sorry but i can't say exactly what happens.
this happened like 2 or 3 times in this session, so maybe you see
something in the logs ubuntu-bug attaches.
If you need more info i'll do my best to provide it.
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unity 5.8.0-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14
Uname: Linux 3.2.0-22-generic x86_64
.tmp.unity.support.test.0:
ApportVersion: 2.0-0ubuntu4
Architecture: amd64
CompizPlugins:
[core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
CompositorRunning: compiz
Date: Fri Apr 6 08:53:14 2012
DistUpgraded: 2012-03-11 11:16:56,683 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MachineType: Acer Aspire 1825PTZ
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-22-generic
root=UUID=3edf82f9-f9ff-489c-8b24-2ffb824a9cd1 ro quiet splash vt.handoff=7
SourcePackage: unity
UpgradeStatus: Upgraded to precise on 2012-03-11 (25 days ago)
dmi.bios.date: 04/23/2010
dmi.bios.vendor: INSYDE
dmi.bios.version: V1.3127
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: JM12-MS-CAP
dmi.board.vendor: Acer
dmi.board.version: Base Board Version
dmi.chassis.type: 10
dmi.chassis.vendor: Chassis Manufacturer
dmi.chassis.version: Chassis Version
dmi.modalias:
dmi:bvnINSYDE:bvrV1.3127:bd04/23/2010:svnAcer:pnAspire1825PTZ:pvrV1.3127:rvnAcer:rnJM12-MS-CAP:rvrBaseBoardVersion:cvnChassisManufacturer:ct10:cvrChassisVersion:
dmi.product.name: Aspire 1825PTZ
dmi.product.version: V1.3127
dmi.sys.vendor: Acer
version.compiz: compiz 1:0.9.7.4-0ubuntu2
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.2-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.2-0ubuntu3
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu10
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati
1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau
1:0.0.16+git20111201+b5534a1-1build2
** Patch added: "Squashed and rebased patch of upstream fixes"
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/974887/+attachment/3094377/+files/507_touchscreen_fixes.patch
** Description changed:
SRU Criteria
============
[Impact]
Touchscreen input handling is broken in many ways in the Precise X server.
The issues include crashes, events sent to the wrong window, broken grabs,
memory leaks, and Compiz and toolkit pop-up menu breakage.
[Upstream Fixes]
http://cgit.freedesktop.org/~cndougla/xserver/log/?h=input-fixes
All commits were developed specifically for this bug. I just kept
- unraveling issues until things worked properly on my touchscreen. A high
- level overview of the impact of the fixes:
+ unraveling issues until things worked properly on my touchscreen. These
+ patches have been reviewed by Peter Hutterer, the upstream X input
+ subsystem maintainer, and Bryce Harrington, one of the Ubuntu X team
+ members. A high level overview of the impact of the fixes:
* Crash or events sent to the wrong windows due to inappropriate casting and
memory accesses:
- Check core event mask properly for pointer emulated touch events
- Only set XI2 mask if pointer emulation is for XI2 client
- Check other clients' core masks properly when adding touch listener
* Non-functional changes required for subsequent fixes:
- Split out helper function TouchListenerAcceptReject()
- Rename TouchEnsureSprite to TouchBuildSprite and event type checks
* Fixes for internal touch and pointer records remaining in an open state,
leading to memory leaks and potentially input locking up:
- Accept touch sequence for pointer listener after second event delivery
- When deactivating an explicit pointer grab, reject all grabs on touches
- Ensure touch is ended when last listener is rejected
* Fixes for event and server time issues, which lead to grab and ungrab
requests being rejected or unhandled:
- Fix copy/paste error from before git history in UpdateCurrentTimeIf()
- Update currentTime in dispatch loop
- Replay original touch begin event instead of generated begin event
* Don't send end event to accepting client if touch hasn't physically ended:
- On touch accept, only process end event for owner if it has seen the end
* Don't prematurely end touches and deactivate implicit grabs if a touch end
event is emitted in response to something other than the touch physically
ending:
- End a pointer emulated touch event only on a "real" end event
- Don't deactivate implicit pointer grab on fake touch end event
* Fix toolkit pop-up menus so when you touch the menu, it opens, and then you
drag to select an item before lifting the menu will receive the events:
- When activating an explicit grab, update owning listener
* Fix dragging a Compiz window by touching the title bar using a touchscreen:
- Create a new dix touch record for an emulated touch with no listeners
- Update device state including when touch record does not exist
[Development Fix]
The Q series is not open yet, so there is no development fix.
[Stable Fix]
The upstream fixes have been squashed and rebased into one patch for the
Precise xorg-server. The patch has been attached.
The touch code has been completely rewritten from the prototype
implementation in previous Ubuntu releases, so these changes have not
been nominated for them.
[Regression Potential]
Many patches only affect touch pointer emulation, which only affects
touchscreens. The code paths modified should have no regression potential for
other usages. Some of the other patches affect touch handling in general. These
could impact gestures for trackpads, but traditional trackpad pointing and
clicking does not go through these code paths. The server time fixes that are
not touch-specific are small and merely keep the server time more up to date
than it currently is. There could be a regression potential here for input
device grabbing, but it is unlikely.
Original Bug Report
===================
Hi,
similar to #949791 ...
that bug made things better (i can now move windows using the touch
screen) but it still often stops to react to any clicks when using
touch.
I just updated.
In unity 3d (not in unity 2d nor in gnome shell) if i touch the top bar
without any program running it most of the time stops to react to any
clicks (both touch and clicks of the touch pad buttons). I cannot
reproduce it always with the first touch but usually latest with 2 or 3.
i am not sure what happens but after something around a minute it starts
to work again ..... i tried the super key to open the dash and then it
suddenly worked again. I'm sorry but i can't say exactly what happens.
this happened like 2 or 3 times in this session, so maybe you see
something in the logs ubuntu-bug attaches.
If you need more info i'll do my best to provide it.
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unity 5.8.0-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14
Uname: Linux 3.2.0-22-generic x86_64
.tmp.unity.support.test.0:
ApportVersion: 2.0-0ubuntu4
Architecture: amd64
CompizPlugins:
[core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
CompositorRunning: compiz
Date: Fri Apr 6 08:53:14 2012
DistUpgraded: 2012-03-11 11:16:56,683 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MachineType: Acer Aspire 1825PTZ
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-22-generic
root=UUID=3edf82f9-f9ff-489c-8b24-2ffb824a9cd1 ro quiet splash vt.handoff=7
SourcePackage: unity
UpgradeStatus: Upgraded to precise on 2012-03-11 (25 days ago)
dmi.bios.date: 04/23/2010
dmi.bios.vendor: INSYDE
dmi.bios.version: V1.3127
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: JM12-MS-CAP
dmi.board.vendor: Acer
dmi.board.version: Base Board Version
dmi.chassis.type: 10
dmi.chassis.vendor: Chassis Manufacturer
dmi.chassis.version: Chassis Version
dmi.modalias:
dmi:bvnINSYDE:bvrV1.3127:bd04/23/2010:svnAcer:pnAspire1825PTZ:pvrV1.3127:rvnAcer:rnJM12-MS-CAP:rvrBaseBoardVersion:cvnChassisManufacturer:ct10:cvrChassisVersion:
dmi.product.name: Aspire 1825PTZ
dmi.product.version: V1.3127
dmi.sys.vendor: Acer
version.compiz: compiz 1:0.9.7.4-0ubuntu2
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.2-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.2-0ubuntu3
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu10
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati
1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau
1:0.0.16+git20111201+b5534a1-1build2
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/974887
Title:
unity 3d touch stops registering clicks
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/974887/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs