[metacity] window: don't manage our own windows



commit 62ab5389c48ac084794672ff19a817cf3719f0a7
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue Feb 28 00:06:12 2017 +0200

    window: don't manage our own windows

 src/core/window.c |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index ec71bf0..a82d1e9 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -240,6 +240,37 @@ meta_window_new (MetaDisplay *display,
   return window;
 }
 
+static gboolean
+is_our_xwindow (MetaDisplay       *display,
+                Window             xwindow,
+                XWindowAttributes *attrs)
+{
+  if (xwindow == display->screen->no_focus_window)
+    return TRUE;
+
+  if (xwindow == display->screen->flash_window)
+    return TRUE;
+
+  if (xwindow == display->screen->wm_sn_selection_window)
+    return TRUE;
+
+  if (xwindow == display->screen->wm_cm_selection_window)
+    return TRUE;
+
+  if (meta_compositor_is_our_xwindow (display->compositor, xwindow))
+    return TRUE;
+
+  /* Any windows created via meta_create_offscreen_window */
+  if (attrs->override_redirect &&
+      attrs->x == -100 && attrs->y == -100 &&
+      attrs->width == 1 && attrs->height == 1)
+    {
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
 MetaWindow*
 meta_window_new_with_attrs (MetaDisplay       *display,
                             Window             xwindow,
@@ -271,6 +302,12 @@ meta_window_new_with_attrs (MetaDisplay       *display,
       return NULL;
     }
 
+  if (is_our_xwindow (display, xwindow, attrs))
+    {
+      meta_verbose ("Not managing our own windows\n");
+      return NULL;
+    }
+
   /* Grab server */
   meta_display_grab (display);
   meta_error_trap_push (display); /* Push a trap over all of window


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