Blob Blame History Raw
From 8c4610721a117d5d50fc72fb75e41a6727d93b2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 7 May 2014 23:22:41 +0200
Subject: [PATCH] window: Fix delayed mouse mode on X

Using meta_stack_get_default_focus_window_at_point() is unreliable
when used with the overlay windows or popups. Instead, we can just
look up the MetaWindow for the client window that XIQueryPointer
returns.

https://bugzilla.gnome.org/show_bug.cgi?id=730541
---
 src/core/display.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/src/core/display.c b/src/core/display.c
index 435d9d9..b7688e6 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1703,17 +1703,7 @@ window_focus_on_pointer_rest_callback (gpointer data) {
       return TRUE;
     }
 
-  /* Explicitly check for the overlay window, as get_focus_window_at_point()
-   * may return windows that extend underneath the chrome (like
-   * override-redirect or DESKTOP windows)
-   */
-  if (child == meta_get_overlay_window (screen))
-    goto out;
-
-  window =
-      meta_stack_get_default_focus_window_at_point (screen->stack,
-                                                    screen->active_workspace,
-                                                    None, root_x, root_y);
+  window = meta_display_lookup_x_window (display, child);
 
   if (window == NULL)
     goto out;
-- 
2.1.0