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.
This commit is contained in:
Chris Feng 2018-10-21 00:00:00 +00:00
parent 449cd9d379
commit 01b0b54c04

View file

@ -553,8 +553,9 @@ for internal use only."
(exwm-workspace--set-active frame t)) (exwm-workspace--set-active frame t))
((equal output-old output-new) ((equal output-old output-new)
(exwm-workspace--set-active frame t) (exwm-workspace--set-active frame t)
(unless (eq frame old-frame)
(exwm-workspace--set-active old-frame nil) (exwm-workspace--set-active old-frame nil)
(setq workspaces-to-hide (list old-frame))) (setq workspaces-to-hide (list old-frame))))
(active-new) (active-new)
(t (t
(dolist (w exwm-workspace--list) (dolist (w exwm-workspace--list)
@ -626,7 +627,8 @@ for internal use only."
:dst-x (/ (frame-pixel-width frame) 2) :dst-x (/ (frame-pixel-width frame) 2)
:dst-y (/ (frame-pixel-height frame) 2))) :dst-y (/ (frame-pixel-height frame) 2)))
(xcb:flush exwm--connection)))) (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 (with-selected-frame old-frame
(run-hooks 'focus-out-hook))) (run-hooks 'focus-out-hook)))
(run-hooks 'focus-in-hook) (run-hooks 'focus-in-hook)