** 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

Reply via email to