[mutter] window: Only grab/ungrab buttons/keys on X11 windows



commit 14f839c53c2df24c40b4846538286730a75bd5b4
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu Apr 24 16:00:28 2014 -0400

    window: Only grab/ungrab buttons/keys on X11 windows

 src/core/window.c    |   10 ----------
 src/x11/window-x11.c |   12 ++++++++++++
 2 files changed, 12 insertions(+), 10 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index 18f4ddd..29594e5 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1035,13 +1035,6 @@ _meta_window_shared_new (MetaDisplay         *display,
   if (window->decorated)
     meta_window_ensure_frame (window);
 
-  meta_window_grab_keys (window);
-  if (window->type != META_WINDOW_DOCK && !window->override_redirect)
-    {
-      meta_display_grab_window_buttons (window->display, window->xwindow);
-      meta_display_grab_focus_window_button (window->display, window);
-    }
-
   if (window->type == META_WINDOW_DESKTOP ||
       window->type == META_WINDOW_DOCK)
     {
@@ -1614,9 +1607,6 @@ meta_window_unmanage (MetaWindow  *window,
    */
   meta_stack_tracker_queue_sync_stack (window->screen->stack_tracker);
 
-  meta_window_ungrab_keys (window);
-  meta_display_ungrab_window_buttons (window->display, window->xwindow);
-  meta_display_ungrab_focus_window_button (window->display, window);
   if (window->display->autoraise_window == window)
     meta_display_remove_autoraise_callback (window->display);
 
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 434006f..db2a7d6 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -351,6 +351,10 @@ meta_window_x11_unmanage (MetaWindow *window)
    */
   send_configure_notify (window);
 
+  meta_window_ungrab_keys (window);
+  meta_display_ungrab_window_buttons (window->display, window->xwindow);
+  meta_display_ungrab_focus_window_button (window->display, window);
+
   meta_error_trap_pop (window->display);
 }
 
@@ -2360,6 +2364,14 @@ meta_window_x11_new (MetaDisplay       *display,
                                     existing_wm_state,
                                     effect,
                                     &attrs);
+
+  meta_window_grab_keys (window);
+  if (window->type != META_WINDOW_DOCK && !window->override_redirect)
+    {
+      meta_display_grab_window_buttons (window->display, window->xwindow);
+      meta_display_grab_focus_window_button (window->display, window);
+    }
+
   meta_window_set_surface_mapped (window, TRUE);
 
   meta_error_trap_pop (display); /* pop the XSync()-reducing trap */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]