about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-10-21T00·00+0000
committerChris Feng <chris.w.feng@gmail.com>2018-10-21T00·00+0000
commit01b0b54c04d043c47184019c75cc668da2427aa8 (patch)
treea13319f9bf5915c79274f73e4b49b7a4e857712a
parent449cd9d37910f55ed25e293c4b67223bb7ee7eef (diff)
Fix single workspace invisible problem with Xephyr
* exwm-workspace.el (exwm-workspace-switch): On startup EXWM switches
to workspace 0 by force so the rest code can not assume the frames
before and after a switch different.
-rw-r--r--exwm-workspace.el8
1 files changed, 5 insertions, 3 deletions
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 8a59c36b54db..383bf530b8a6 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -553,8 +553,9 @@ for internal use only."
           (exwm-workspace--set-active frame t))
          ((equal output-old output-new)
           (exwm-workspace--set-active frame t)
-          (exwm-workspace--set-active old-frame nil)
-          (setq workspaces-to-hide (list old-frame)))
+          (unless (eq frame old-frame)
+            (exwm-workspace--set-active old-frame nil)
+            (setq workspaces-to-hide (list old-frame))))
          (active-new)
          (t
           (dolist (w exwm-workspace--list)
@@ -626,7 +627,8 @@ for internal use only."
                              :dst-x (/ (frame-pixel-width frame) 2)
                              :dst-y (/ (frame-pixel-height frame) 2)))
           (xcb:flush exwm--connection))))
-    (when (frame-live-p old-frame)
+    (when (and (not (eq frame old-frame))
+               (frame-live-p old-frame))
       (with-selected-frame old-frame
         (run-hooks 'focus-out-hook)))
     (run-hooks 'focus-in-hook)