about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-05-13T15·57+0800
committerChris Feng <chris.w.feng@gmail.com>2018-05-13T15·57+0800
commit0037cba87b1ceefc3a65fa3c458aa685689e7e27 (patch)
tree89c973ee5af8234c76c08f5f6bf1a8a78a488447
parentff4ae82fd7ca9101da92f21c7f46f991da99a30e (diff)
Avoid hiding full screen X windows unexpectedly
* exwm-layout.el (exwm-layout-set-fullscreen)
(exwm-layout-unset-fullscreen): Set the Emacs window of a full screen
X window dedicated to its buffer such that newly created X windows
won't replace it.
-rw-r--r--exwm-layout.el2
1 files changed, 2 insertions, 0 deletions
diff --git a/exwm-layout.el b/exwm-layout.el
index 764259870dc0..5b7fe999a1c4 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -165,6 +165,7 @@
                        :window exwm--id
                        :data (vector xcb:Atom:_NET_WM_STATE_FULLSCREEN)))
     (xcb:flush exwm--connection)
+    (set-window-dedicated-p (get-buffer-window) t)
     (cl-pushnew xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state)
     (exwm-input--release-keyboard exwm--id)))
 
@@ -193,6 +194,7 @@
     (xcb:+request exwm--connection
         (make-instance 'xcb:ewmh:set-_NET_WM_STATE :window exwm--id :data []))
     (xcb:flush exwm--connection)
+    (set-window-dedicated-p (get-buffer-window) nil)
     (when exwm--keyboard-grabbed
       (exwm-input--grab-keyboard exwm--id))))