From 4c043471c5e2b3c45e94bd98a3a5b6f83283fc39 Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Tue, 3 Jan 2017 00:14:33 +0800 Subject: [PATCH] Prevent certain frame parameters from being saved/restored * exwm-input.el (exwm-input--init): * exwm-randr.el (exwm-randr--init): * exwm-workspace.el (exwm-workspace--init): Add certain frame parameters into `frameset-filter-alist' to prevent them from being saved/restored which makes little sense and is problematic. --- exwm-input.el | 6 +++++- exwm-randr.el | 6 +++++- exwm-workspace.el | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/exwm-input.el b/exwm-input.el index 9e98c62e1..7f174c2ad 100644 --- a/exwm-input.el +++ b/exwm-input.el @@ -767,7 +767,11 @@ Its usage is the same with `exwm-input-set-simulation-keys'." ;; Re-grab global keys. (add-hook 'exwm-workspace-list-change-hook #'exwm-input--on-workspace-list-change) - (exwm-input--on-workspace-list-change)) + (exwm-input--on-workspace-list-change) + ;; Prevent frame parameters introduced by this module from being + ;; saved/restored. + (dolist (i '(exwm-grabbed)) + (push (cons i :never) frameset-filter-alist))) (defun exwm-input--exit () "Exit the input module." diff --git a/exwm-randr.el b/exwm-randr.el index 5caf875b2..1d77fb556 100644 --- a/exwm-randr.el +++ b/exwm-randr.el @@ -160,7 +160,11 @@ ;; xcb:randr:NotifyMask:CrtcChange)) )) (xcb:flush exwm--connection) - (add-hook 'exwm-workspace-list-change-hook #'exwm-randr--refresh))))) + (add-hook 'exwm-workspace-list-change-hook #'exwm-randr--refresh)))) + ;; Prevent frame parameters introduced by this module from being + ;; saved/restored. + (dolist (i '(exwm-randr-output exwm-geometry)) + (push (cons i :never) frameset-filter-alist))) (defun exwm-randr--exit () "Exit the RandR module." diff --git a/exwm-workspace.el b/exwm-workspace.el index 617ad3820..9d5401e28 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -1466,7 +1466,12 @@ applied to all subsequently created X frames." (add-hook 'delete-frame-functions #'exwm-workspace--remove-frame-as-workspace) ;; Switch to the first workspace - (exwm-workspace-switch 0 t)) + (exwm-workspace-switch 0 t) + ;; Prevent frame parameters introduced by this module from being + ;; saved/restored. + (dolist (i '(exwm-outer-id exwm-id exwm-container exwm-workspace + fullscreen exwm-selected-window exwm-urgency)) + (push (cons i :never) frameset-filter-alist))) (defun exwm-workspace--exit () "Exit the workspace module."