about summary refs log tree commit diff
path: root/exwm-layout.el
diff options
context:
space:
mode:
Diffstat (limited to 'exwm-layout.el')
-rw-r--r--exwm-layout.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/exwm-layout.el b/exwm-layout.el
index b5835cbe2776..5177ef5bcd95 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -28,6 +28,7 @@
 (require 'exwm-core)
 
 (defvar exwm-floating-border-width)
+(defvar exwm-workspace--id-struts-alist)
 
 (defun exwm-layout--resize-container (id container x y width height
                                          &optional container-only)
@@ -259,6 +260,13 @@
     (exwm-layout--show exwm--id)
     (xcb:+request exwm--connection
         (make-instance 'xcb:ewmh:set-_NET_WM_STATE :window exwm--id :data []))
+    ;; Raise X windows with struts set again.
+    (dolist (pair exwm-workspace--id-struts-alist)
+      (xcb:+request exwm--connection
+          (make-instance 'xcb:ConfigureWindow
+                         :window (car pair)
+                         :value-mask xcb:ConfigWindow:StackMode
+                         :stack-mode xcb:StackMode:Above)))
     (xcb:flush exwm--connection)
     (setq exwm--ewmh-state
           (delq xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state))