window: Don't use clutter_stage_get_default

It doesn't work, for the same reasons.
This commit is contained in:
Jasper St. Pierre 2014-04-23 16:55:18 -04:00
parent c95c501a5b
commit 18d609ad6d

View File

@ -9193,6 +9193,13 @@ 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);
}
static gboolean static gboolean
window_focus_on_pointer_rest_callback (gpointer data) window_focus_on_pointer_rest_callback (gpointer data)
{ {
@ -9203,7 +9210,6 @@ window_focus_on_pointer_rest_callback (gpointer data)
MetaCursorTracker *tracker = meta_cursor_tracker_get_for_screen (screen); MetaCursorTracker *tracker = meta_cursor_tracker_get_for_screen (screen);
int root_x, root_y; int root_x, root_y;
guint32 timestamp; guint32 timestamp;
ClutterActor *child;
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK) if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK)
goto out; goto out;
@ -9218,17 +9224,7 @@ window_focus_on_pointer_rest_callback (gpointer data)
return TRUE; return TRUE;
} }
child = clutter_stage_get_actor_at_pos (CLUTTER_STAGE (clutter_stage_get_default ()), if (!window_has_pointer (window))
CLUTTER_PICK_REACTIVE, root_x, root_y);
if (!META_IS_SURFACE_ACTOR (child))
goto out;
window =
meta_stack_get_default_focus_window_at_point (screen->stack,
screen->active_workspace,
NULL, root_x, root_y);
if (window == NULL)
goto out; goto out;
timestamp = meta_display_get_current_time_roundtrip (display); timestamp = meta_display_get_current_time_roundtrip (display);