Skip to content

cursor-tracker: Move `visibility-changed` signal emission to the end

The gnome-shell magnifier listens to the visibility-changed signal and calls meta_cursor_tracker_set_pointer_visible(false) when the cursor became visible.

This leads to a reentrance in meta_cursor_tracker_set_pointer_visible() and clutter_seat_uninhibit_unfocus() gets called twice, once from the meta_cursor_tracker_set_pointer_visible(false) by the magnifier and then the original meta_cursor_tracker_set_pointer_visible(true) continues, after the first call has set is_showing to false again. This breaks the inhibitor counting and the ability to use the cursor while using the magnifier.

Merge request reports