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 765065 - Wayland: Hover state stuck after mouse leaving the toplevel
Wayland: Hover state stuck after mouse leaving the toplevel
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Wayland
3.20.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2016-04-14 16:05 UTC by Timm Bäder
Modified: 2016-04-19 08:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Video showing the issue (142.76 KB, video/webm)
2016-04-14 16:05 UTC, Timm Bäder
  Details
wayland: Do not check the pointer focus when receiving wl_pointer.frame (1010 bytes, patch)
2016-04-18 12:12 UTC, Carlos Garnacho
committed Details | Review

Description Timm Bäder 2016-04-14 16:05:11 UTC
Created attachment 326030 [details]
Video showing the issue

Not sure if this is a gtk+ or a gnome-shell issue, but sometimes when I leave a window with the mouse, the hover state is stuck on a widget, causing it to look like it's :hover'ed or even showing the tooltip after the mouse has already left the toplevel. It seems like this mostly happens when I move the mouse fast, but it's not always reproducible.

Video showing the issue attached, with gtk+ 3.20.3, gnome-shell 3.20.1 and mutter 3.20.1
Comment 1 Timm Bäder 2016-04-15 14:15:21 UTC
Note: I can also reproduce this in weston.
Comment 2 Olivier Fourdan 2016-04-18 08:50:44 UTC
Interesting, afaics (using GDK_DEBUG=events) the surface "leave" event is delivered by the gdk wayland backend when this happens.
Comment 3 Carlos Garnacho 2016-04-18 11:39:26 UTC
Seems probably down to the interpretation of crossing mode/detail in GDK.
Comment 4 Olivier Fourdan 2016-04-18 11:42:46 UTC
I suspect it might be a regression in 3.20 because I really cannot reproduce in 3.18. Can you?
Comment 5 Carlos Garnacho 2016-04-18 11:47:57 UTC
Hmm, yeah, that's a good point. I don't remember this with 3.18 indeed.
Comment 6 Carlos Garnacho 2016-04-18 12:12:49 UTC
Created attachment 326246 [details] [review]
wayland: Do not check the pointer focus when receiving wl_pointer.frame

The frame event is also meant to compress wl_pointer.leave events, at this
point the focus surface will be definitely NULL. In the end, wl_pointer.frame
should flush the last composed event despite the pointer focus.
Comment 7 Carlos Garnacho 2016-04-18 12:14:20 UTC
So... AFAICT this should be happening with 3.18 too, the tablet branch reshuffled this code, but it seems this was previously present.
Comment 8 Olivier Fourdan 2016-04-18 12:22:53 UTC
Yeap, looks like attachment 326246 [details] [review] fixes the issue for me :)
Comment 9 Carlos Garnacho 2016-04-18 13:18:36 UTC
Thanks for confirming :), pushed.

Attachment 326246 [details] pushed as bfcd9a2 - wayland: Do not check the pointer focus when receiving wl_pointer.frame
Comment 10 Timm Bäder 2016-04-19 08:02:26 UTC
Can we get this into gtk-3-20 as well?