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 756754 - Unset "current pointer emulating touch sequence" lazily
Unset "current pointer emulating touch sequence" lazily
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: wayland
git master
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks: 756748
 
 
Reported: 2015-10-17 16:34 UTC by Carlos Garnacho
Modified: 2015-12-04 10:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
core: Unset "pointer emulating" sequence lazily (2.11 KB, patch)
2015-10-17 16:43 UTC, Carlos Garnacho
committed Details | Review

Description Carlos Garnacho 2015-10-17 16:34:36 UTC
It is currently unset when receiving CLUTTER_TOUCH_END on meta_display_handle_event(), however there's still Clutter event processing left that may result in checks for the current sequence being "pointer emulating".

This makes those checks fail on CLUTTER_TOUCH_END in gnome-shell (which there are in the patches in bug #756748). I'm attaching a patch that unsets this lazily, since we don't have a way to hook post-processing.
Comment 1 Carlos Garnacho 2015-10-17 16:43:34 UTC
Created attachment 313544 [details] [review]
core: Unset "pointer emulating" sequence lazily

Unsetting it in meta_display_handle_event() will make the pointer
emulation checks fail on TOUCH_END event handlers across clutter
actors, the sequence should still be considered as pointer emulating
at that time.

As we don't have a way to hook this post clutter event handling,
instead unset/reset it lazily on the next pointer emulating TOUCH_BEGIN
event, the checks would already fail on other sequences, even if the
pointer emulating touch ended earlier. The only extra thing we need
to take care about is sequence collision, at which point it's safe to
just unset the stored sequence if its new incarnation isn't flagged/
deemed as pointer emulating.
Comment 2 Carlos Garnacho 2015-12-04 10:49:59 UTC
Pushed with minor modifications and extra comments.

Attachment 313544 [details] pushed as 96b5042 - core: Unset "pointer emulating" sequence lazily