about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2017-01-02T16·14+0800
committerChris Feng <chris.w.feng@gmail.com>2017-01-02T16·14+0800
commit4c043471c5e2b3c45e94bd98a3a5b6f83283fc39 (patch)
treeaff6efadcf3a58ea62d85d3a9747cae0dbd701a3
parentb11ac2e6dc0821a5b1c6079cf24771fde3aeb4d4 (diff)
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.
-rw-r--r--exwm-input.el6
-rw-r--r--exwm-randr.el6
-rw-r--r--exwm-workspace.el7
3 files changed, 16 insertions, 3 deletions
diff --git a/exwm-input.el b/exwm-input.el
index 9e98c62e12c7..7f174c2ad757 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 5caf875b2e3b..1d77fb5563d4 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 617ad3820877..9d5401e28bdd 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."