diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-08-10T11·45+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-08-10T11·45+0800 |
commit | 8e3fc3602f649fca47a61a2be2072521a352a62a (patch) | |
tree | 403df0de1e63f5f109a66efab7d8468fea4699d9 /exwm-layout.el | |
parent | 810b4716a10169e1de29c52cf2e3aeb2e79f2018 (diff) |
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.
Diffstat (limited to 'exwm-layout.el')
-rw-r--r-- | exwm-layout.el | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/exwm-layout.el b/exwm-layout.el index 2886e43b4cd3..f5e0e149e957 100644 --- a/exwm-layout.el +++ b/exwm-layout.el @@ -314,11 +314,14 @@ selected by `other-buffer'." :data (vconcat (append clients-other clients-iconic clients clients-floating)))))) -(defun exwm-layout--refresh () +(defun exwm-layout--refresh (&optional frame) "Refresh layout." - (let ((frame (selected-frame)) - covered-buffers ;EXWM-buffers covered by a new X window. - vacated-windows ;Windows previously displaying EXWM-buffers. + ;; `window-size-change-functions' sets this argument while + ;; `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. windows) (if (not (exwm-workspace--workspace-p frame)) (if (frame-parameter frame 'exwm-outer-id) @@ -566,6 +569,9 @@ See also `exwm-layout-enlarge-window'." "Initialize layout module." ;; Auto refresh layout (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) ;; Refresh when minibuffer grows (add-hook 'minibuffer-setup-hook #'exwm-layout--on-minibuffer-setup t) |