GNOME Bugzilla – Bug 726209
GtkTreeView: stop ignoring crossing events from grabs
Last modified: 2014-03-13 03:00:04 UTC
Stop ignoring various crossing events from grabs: Enter events with type GRAB/GTK_GRAB/GTK_UNGRAB/STATE_CHANGED: Ignoring these events was added as a workaround for synthesized events not having the right coordinates (see bug 555109) but now they do have the right coordinates. (see bug 704456) Leave events with types types GTK_GRAB/GTK_UNGRAB: Ignoring these events was added because since we were ignoring the enter events as above, ignoring the leave events meant we could lose the prelighted row in a grab-triggered leave/enter pair. (See bug 653676. It's also now impossible to reproduce the leave events that were reported in that bug as causing problems.) Leave events of type GRAB. Ignoring these events was added without a ChangeLog entry in 2001, possibly to keep the prelight from flashing when activating menus. But ignoring these events could lead to stuck prelighting, and we don't do it for any other widgets.
Created attachment 271667 [details] [review] GtkTreeView: stop ignoring crossing events from grabs
The bug this patch is fixing is that currently if you have a GtkPopover in clicking off the popover to dismiss it on a GtkTreeView (which triggers a synthetic enter event on the GtkTreeView) will leave the GtkTreeView in a confused state until the user moves the mouse again. (This could also happen with a modal dialog or menu ,but the problem described here is *likely* to be encountered if you are triggering a popover when clicking on GtkTreeView cells.)
Review of attachment 271667 [details] [review]: Thanks for the detailed commit message, thats appreciated. I've added the bug description from the last comment.
Attachment 271667 [details] pushed as 827e5cb - GtkTreeView: stop ignoring crossing events from grabs