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))
(let ((window (car windows)))
(if (eq frame exwm--frame)
(when (exwm-workspace--active-p frame)
;; Show it if `frame' is active.
(exwm-layout--show exwm--id window))
;; Show it if `frame' is active, hide otherwise.
(if (exwm-workspace--active-p frame)
(exwm-layout--show exwm--id window)
(exwm-layout--hide exwm--id))
;; It was last shown in other workspace; move it here.
(exwm-workspace-move-window frame exwm--id))
;; 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)
(if active
(exwm-workspace--set-fullscreen frame)
(exwm--set-geometry (frame-parameter frame 'exwm-container) nil nil 1 1)
(xcb:flush exwm--connection)))
(exwm--set-geometry (frame-parameter frame 'exwm-container) nil nil 1 1))
(exwm-layout--refresh frame)
(xcb:flush exwm--connection))
(defun exwm-workspace--active-p (frame)
"Return non-nil if FRAME is active"