Adapt for the changes in `window-configuration-change-hook'

* exwm-layout.el (exwm-layout--refresh): Accept frame as an optional
argument.
(exwm-layout--init): Add `exwm-layout--refresh' to
`window-size-change-functions' when appropriate.
This commit is contained in:
Chris Feng 2016-08-10 19:45:52 +08:00
parent 810b4716a1
commit 8e3fc3602f

View file

@ -314,10 +314,13 @@ selected by `other-buffer'."
:data (vconcat (append clients-other clients-iconic :data (vconcat (append clients-other clients-iconic
clients clients-floating)))))) clients clients-floating))))))
(defun exwm-layout--refresh () (defun exwm-layout--refresh (&optional frame)
"Refresh layout." "Refresh layout."
(let ((frame (selected-frame)) ;; `window-size-change-functions' sets this argument while
covered-buffers ;EXWM-buffers covered by a new X window. ;; `window-configuration-change-hook' makes the frame selected.
(unless frame
(setq frame (selected-frame)))
(let (covered-buffers ;EXWM-buffers covered by a new X window.
vacated-windows ;Windows previously displaying EXWM-buffers. vacated-windows ;Windows previously displaying EXWM-buffers.
windows) windows)
(if (not (exwm-workspace--workspace-p frame)) (if (not (exwm-workspace--workspace-p frame))
@ -566,6 +569,9 @@ See also `exwm-layout-enlarge-window'."
"Initialize layout module." "Initialize layout module."
;; Auto refresh layout ;; Auto refresh layout
(add-hook 'window-configuration-change-hook #'exwm-layout--refresh) (add-hook 'window-configuration-change-hook #'exwm-layout--refresh)
;; The behavior of `window-configuration-change-hook' will be changed.
(when (fboundp 'window-pixel-width-before-size-change)
(add-hook 'window-size-change-functions #'exwm-layout--refresh))
(unless (exwm-workspace--minibuffer-own-frame-p) (unless (exwm-workspace--minibuffer-own-frame-p)
;; Refresh when minibuffer grows ;; Refresh when minibuffer grows
(add-hook 'minibuffer-setup-hook #'exwm-layout--on-minibuffer-setup t) (add-hook 'minibuffer-setup-hook #'exwm-layout--on-minibuffer-setup t)