From 95247457efce4e119de79e0d1ba89d052a6998e7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sun, 3 Jul 2011 21:16:28 +0200 Subject: [PATCH] display: Use the grab pointer for delayed window raising --- src/core/display.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/core/display.c b/src/core/display.c index 266a422cd..6e534b07d 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -1554,22 +1554,26 @@ window_raise_with_delay_callback (void *data) if (window == NULL) return FALSE; + if (window->cur_grab == NULL) + return FALSE; + /* If we aren't already on top, check whether the pointer is inside * the window and raise the window if so. */ if (meta_stack_get_top (window->screen->stack) != window) { - int x, y, root_x, root_y; - Window root, child; - unsigned int mask; + int root_x, root_y; gboolean same_screen; gboolean point_in_window; + MetaDevicePointer *pointer; meta_error_trap_push (window->display); - same_screen = XQueryPointer (window->display->xdisplay, - window->xwindow, - &root, &child, - &root_x, &root_y, &x, &y, &mask); + pointer = META_DEVICE_POINTER (window->cur_grab->grab_pointer); + same_screen = meta_device_pointer_query_position (pointer, + window->xwindow, + NULL, NULL, + &root_x, &root_y, + NULL, NULL, NULL); meta_error_trap_pop (window->display); point_in_window =