about summary refs log tree commit diff
path: root/exwm-manage.el
diff options
context:
space:
mode:
Diffstat (limited to 'exwm-manage.el')
-rw-r--r--exwm-manage.el13
1 files changed, 7 insertions, 6 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index 2f35b1475f9a..b32d677ea92b 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -360,8 +360,7 @@ Would you like to kill it? "
   (let ((obj (make-instance 'xcb:ConfigureRequest))
         buffer edges)
     (xcb:unmarshal obj data)
-    (with-slots (stack-mode window sibling x y width height border-width
-                            value-mask)
+    (with-slots (window x y width height border-width value-mask)
         obj
       (exwm--log "ConfigureRequest from #x%x (#x%x) @%dx%d%+d%+d, border: %d"
                  window value-mask width height x y border-width)
@@ -391,14 +390,16 @@ Would you like to kill it? "
                                         :border-width 0 :override-redirect 0)
                                        exwm--connection))))
         (exwm--log "ConfigureWindow (preserve geometry)")
-        ;; Configure unmanaged windows
+        ;; Configure the unmanaged window without changing the stacking order.
         (xcb:+request exwm--connection
             (make-instance 'xcb:ConfigureWindow
                            :window window
-                           :value-mask value-mask
+                           :value-mask
+                           (logand value-mask
+                                   (lognot xcb:ConfigWindow:Sibling)
+                                   (lognot xcb:ConfigWindow:StackMode))
                            :x x :y y :width width :height height
-                           :border-width border-width
-                           :sibling sibling :stack-mode stack-mode)))))
+                           :border-width border-width)))))
   (xcb:flush exwm--connection))
 
 (defun exwm-manage--on-MapRequest (data _synthetic)