Manually update toplevel_under_pointer when a grab changes to owner_events
When we ungrab the pointer we don't get enter events for the window the pointer is in at the time of the ungrab, so we manually query for the window the pointer is in. The same thing actually happens on re-grab if the previous grab was !owner_events (meaning we don't get crossing events for windows other than the grab) but the new grab is owner_events (and thus non-grab windows need to get crossing events). This factors out some common code and enables it also for the re-grab to owner_events case.
Showing with 83 additions and 48 deletions