[metacity] window: minor fixes from mutter e3d59832 commit



commit af7a50198b28e29bbf568c1a8958fd9b0c9a3860
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Sep 29 21:09:23 2017 +0300

    window: minor fixes from mutter e3d59832 commit

 src/core/window.c |   35 ++++++++++++++++++++++++-----------
 1 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index ccee7ae..7a54b7f 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5230,15 +5230,25 @@ meta_window_configure_request (MetaWindow *window,
         }
       else
         {
-          MetaWindow *sibling = NULL;
+          Window above;
+          MetaWindow *sibling;
 
-          if (event->xconfigurerequest.above != None)
+          above = event->xconfigurerequest.above;
+          sibling = NULL;
+
+          if (above != None)
             {
-              sibling = meta_display_lookup_x_window (window->display,
-                event->xconfigurerequest.above);
+              sibling = meta_display_lookup_x_window (window->display, above);
+
+              if (sibling == NULL)
+                return TRUE;
+
+              meta_topic (META_DEBUG_STACK,
+                          "xconfigure stacking request from window %s sibling %s stackmode %d\n",
+                          window->desc, sibling->desc, event->xconfigurerequest.detail);
             }
 
-          restack_window(window, sibling, event->xconfigurerequest.detail);
+          restack_window (window, sibling, event->xconfigurerequest.detail);
 
           restacked = TRUE;
         }
@@ -5283,7 +5293,7 @@ meta_window_property_notify (MetaWindow *window,
 static void
 restack_window (MetaWindow *window,
                 MetaWindow *sibling,
-                int direction)
+                int         direction)
 {
  switch (direction)
    {
@@ -5309,13 +5319,16 @@ restack_window (MetaWindow *window,
 }
 
 static void
-handle_net_restack_window (MetaDisplay* display,
-                           XEvent *event)
+handle_net_restack_window (MetaDisplay *display,
+                           XEvent      *event)
 {
   MetaWindow *window, *sibling = NULL;
 
-  window = meta_display_lookup_x_window (display,
-                                         event->xclient.window);
+  /* Ignore if this does not come from a pager, see the WM spec */
+  if (event->xclient.data.l[0] != 2)
+    return;
+
+  window = meta_display_lookup_x_window (display, event->xclient.window);
 
   if (window)
     {
@@ -5364,7 +5377,7 @@ meta_window_client_message (MetaWindow *window,
 
       return TRUE;
     }
-  else if (event->xproperty.atom ==
+  else if (event->xclient.message_type ==
            display->atom__NET_RESTACK_WINDOW)
     {
       handle_net_restack_window (display, event);


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