about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-03-09T16·12+0800
committerChris Feng <chris.w.feng@gmail.com>2018-03-09T16·12+0800
commitcb8706f91c1c343a9bf392c9deaadc0c42d4dba6 (patch)
tree7c40e9a3f9d3606c6e7cb59d9ecb1095e14d53e0
parent2f430db735f33abb4fc009fc6ec8c12f74f57dba (diff)
Delay setting workspaces active/inactive
* exwm-randr.el (exwm-randr--refresh): Set workspaces active/inactive
after their geometries have been updated.
-rw-r--r--exwm-randr.el23
1 files changed, 12 insertions, 11 deletions
diff --git a/exwm-randr.el b/exwm-randr.el
index 0658bee77930..b3c6ce870780 100644
--- a/exwm-randr.el
+++ b/exwm-randr.el
@@ -140,6 +140,18 @@ the first one in result being the primary output."
                                              container-frame-alist))
           (set-frame-parameter frame 'exwm-randr-output output)
           (set-frame-parameter frame 'exwm-geometry geometry)))
+      ;; Update workareas.
+      (exwm-workspace--update-workareas)
+      ;; Resize workspace.
+      (dolist (f exwm-workspace--list)
+        (exwm-workspace--set-fullscreen f))
+      (xcb:flush exwm--connection)
+      ;; Raise the minibuffer if it's active.
+      (when (and (active-minibuffer-window)
+                 (exwm-workspace--minibuffer-own-frame-p))
+        (exwm-workspace--show-minibuffer))
+      ;; Set _NET_DESKTOP_GEOMETRY.
+      (exwm-workspace--set-desktop-geometry)
       ;; Update active/inactive workspaces.
       (dolist (w exwm-workspace--list)
         (exwm-workspace--set-active w nil))
@@ -155,17 +167,6 @@ the first one in result being the primary output."
                   (rassq-delete-all output container-output-alist))
             (exwm-workspace--set-active (cdr (assq xwin container-frame-alist))
                                         t))))
-      ;; Update workareas.
-      (exwm-workspace--update-workareas)
-      ;; Resize workspace.
-      (dolist (f exwm-workspace--list)
-        (exwm-workspace--set-fullscreen f))
-      ;; Raise the minibuffer if it's active.
-      (when (and (active-minibuffer-window)
-                 (exwm-workspace--minibuffer-own-frame-p))
-        (exwm-workspace--show-minibuffer))
-      ;; Set _NET_DESKTOP_GEOMETRY.
-      (exwm-workspace--set-desktop-geometry)
       (xcb:flush exwm--connection)
       (run-hooks 'exwm-randr-refresh-hook))))