Refresh layout after activating/deactivating workspaces

* exwm-workspace.el (exwm-workspace--set-active): Refresh layout
after activating or deactivating workspaces.

* exwm-layout.el (exwm-layout--refresh-workspace): Hide X windows on
inactive workspaces.
This commit is contained in:
Adrián Medraño Calvo 2018-08-30 12:00:00 +00:00
parent 2b1ed2ce70
commit 5f6b866cfe
2 changed files with 7 additions and 5 deletions

View file

@ -320,9 +320,10 @@ selected by `other-buffer'."
(exwm-layout--hide exwm--id)) (exwm-layout--hide exwm--id))
(let ((window (car windows))) (let ((window (car windows)))
(if (eq frame exwm--frame) (if (eq frame exwm--frame)
(when (exwm-workspace--active-p frame) ;; Show it if `frame' is active, hide otherwise.
;; Show it if `frame' is active. (if (exwm-workspace--active-p frame)
(exwm-layout--show exwm--id window)) (exwm-layout--show exwm--id window)
(exwm-layout--hide exwm--id))
;; It was last shown in other workspace; move it here. ;; It was last shown in other workspace; move it here.
(exwm-workspace-move-window frame exwm--id)) (exwm-workspace-move-window frame exwm--id))
;; Vacate any other windows (in any workspace) showing this ;; Vacate any other windows (in any workspace) showing this

View file

@ -379,8 +379,9 @@ NIL if FRAME is not a workspace"
(set-frame-parameter frame 'exwm-active active) (set-frame-parameter frame 'exwm-active active)
(if active (if active
(exwm-workspace--set-fullscreen frame) (exwm-workspace--set-fullscreen frame)
(exwm--set-geometry (frame-parameter frame 'exwm-container) nil nil 1 1) (exwm--set-geometry (frame-parameter frame 'exwm-container) nil nil 1 1))
(xcb:flush exwm--connection))) (exwm-layout--refresh frame)
(xcb:flush exwm--connection))
(defun exwm-workspace--active-p (frame) (defun exwm-workspace--active-p (frame)
"Return non-nil if FRAME is active" "Return non-nil if FRAME is active"