From ea027d424ea71209ca1819094577559d7847203c Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Fri, 12 Feb 2016 14:10:11 +0800 Subject: [PATCH] Postpone making workspace frames fullscreen * exwm-workspace.el (exwm-workspace--init, exwm-workspace--post-init): Move work to postpone to the new function `exwm-workspace--post-init'. * exwm.el (exwm-init): Call `exwm-workspace--post-init' after `exwm--unlock`. --- exwm-workspace.el | 13 ++++++++----- exwm.el | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/exwm-workspace.el b/exwm-workspace.el index 3d7f67e..99a7c7b 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -599,11 +599,6 @@ This functions is modified from `display-buffer-reuse-window' and (xcb:flush exwm--connection) ;; We have to advice `x-create-frame' or every call to it would hang EXWM (advice-add 'x-create-frame :around #'exwm-workspace--x-create-frame) - ;; Delay making the workspaces fullscreen until Emacs becomes idle - (run-with-idle-timer 0 nil - (lambda () - (dolist (i exwm-workspace--list) - (set-frame-parameter i 'fullscreen 'fullboth)))) ;; Set _NET_VIRTUAL_ROOTS (xcb:+request exwm--connection (make-instance 'xcb:ewmh:set-_NET_VIRTUAL_ROOTS @@ -615,6 +610,14 @@ This functions is modified from `display-buffer-reuse-window' and ;; Switch to the first workspace (exwm-workspace-switch 0 t)) +(defun exwm-workspace--post-init () + "The second stage in the initialization of the workspace module." + ;; Delay making the workspaces fullscreen until Emacs becomes idle + (run-with-idle-timer 0 nil + (lambda () + (dolist (i exwm-workspace--list) + (set-frame-parameter i 'fullscreen 'fullboth))))) + (provide 'exwm-workspace) diff --git a/exwm.el b/exwm.el index 720274f..8f15b4e 100644 --- a/exwm.el +++ b/exwm.el @@ -517,6 +517,7 @@ (exwm-workspace--init) (exwm-input--init) (exwm--unlock) + (exwm-workspace--post-init) ;; Manage existing windows (exwm-manage--scan) (run-hooks 'exwm-init-hook)))))