diff --git a/src/core/window.c b/src/core/window.c index 54e3e4ab4..9bbfbced6 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -7701,8 +7701,16 @@ mouse_mode_focus (MetaWindow *window, static gboolean window_has_pointer (MetaWindow *window) { - ClutterActor *actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window)); - return clutter_actor_has_pointer (actor); + ClutterDeviceManager *dm; + ClutterInputDevice *dev; + ClutterActor *pointer_actor, *window_actor; + + dm = clutter_device_manager_get_default (); + dev = clutter_device_manager_get_core_device (dm, CLUTTER_POINTER_DEVICE); + pointer_actor = clutter_input_device_get_pointer_actor (dev); + window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window)); + + return pointer_actor && clutter_actor_contains (window_actor, pointer_actor); } static gboolean