After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 684509 - Mouse events lost after touch event from virtual core pointer
Mouse events lost after touch event from virtual core pointer
Status: RESOLVED FIXED
Product: clutter
Classification: Platform
Component: x11
git master
Other Linux
: Normal normal
: ---
Assigned To: clutter-maint
clutter-maint
Depends on:
Blocks:
 
 
Reported: 2012-09-20 23:09 UTC by Emanuele Aina
Modified: 2012-09-24 17:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
x11: set the stage for core events with no associated stage (2.60 KB, patch)
2012-09-21 12:42 UTC, Emanuele Aina
committed Details | Review

Description Emanuele Aina 2012-09-20 23:09:53 UTC
Since touch events now clear the device stage on the last TOUCH_END in _clutter_input_device_remove_event_sequence(), subsequent mouse event on the same device (eg. the virtual core pointer) cannot be delivered until a new ENTER/LEAVE sequence will re-set the device stage.

Steps to reproduce:
* launch ./tests/interactive/test-events
* click on the stage and notice the BUTTON_[PRESS|RELEASE] events on the console
* tap the stage and notice the TOUCH_[BEGIN|END] events
* click the stage again and notice the lack of BUTTON_* events
Comment 1 Emanuele Aina 2012-09-21 12:42:14 UTC
Created attachment 224922 [details] [review]
x11: set the stage for core events with no associated stage

When the last touch has been released the stage on the
corresponding master device (eg. the virtual core pointer) is set
to NULL and no mouse events can be delivered until an ENTER event
has occurred and the stage pointer restored.

This is due to the fact that the master devices can send both
touch events and mouse events, forwarding events coming from the
attached slave devices.

To restore delivery of mouse events we need to ensure that the
stage is set on each ButtonPress, ButtonRelease and Motion event
coming from master devices.
Comment 2 Emmanuele Bassi (:ebassi) 2012-09-24 17:08:30 UTC
Attachment 224922 [details] pushed to master after slight modifications (indentation, and removed redundant lookups).