diff --git a/exwm-workspace.el b/exwm-workspace.el index befa8e0..0e078b7 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -232,18 +232,19 @@ Value nil means to use the default position which is fixed at bottom, while (let (struts struts*) (dolist (pair exwm-workspace--id-struts-alist) (setq struts (cdr pair)) - (dotimes (i 4) - (when (/= 0 (aref struts i)) - (setq struts* - (vector (aref [left right top bottom] i) - (aref struts i) - (when (= 12 (length struts)) - (substring struts (+ 4 (* i 2)) (+ 6 (* i 2)))))) - (if (= 0 (mod i 2)) - ;; Make left/top processed first. - (push struts* exwm-workspace--struts) - (setq exwm-workspace--struts - (append exwm-workspace--struts (list struts*))))))))) + (when struts + (dotimes (i 4) + (when (/= 0 (aref struts i)) + (setq struts* + (vector (aref [left right top bottom] i) + (aref struts i) + (when (= 12 (length struts)) + (substring struts (+ 4 (* i 2)) (+ 6 (* i 2)))))) + (if (= 0 (mod i 2)) + ;; Make left/top processed first. + (push struts* exwm-workspace--struts) + (setq exwm-workspace--struts + (append exwm-workspace--struts (list struts*)))))))))) (defvar exwm-workspace--workareas nil "Workareas (struts excluded).") diff --git a/exwm.el b/exwm.el index 0544308..6737443 100644 --- a/exwm.el +++ b/exwm.el @@ -268,13 +268,9 @@ :window id))) (when reply (setq struts (slot-value reply 'value)) - (if struts - (if pair - (setcdr pair struts) - (push (cons id struts) exwm-workspace--id-struts-alist)) - (when pair - (setq exwm-workspace--id-struts-alist - (assq-delete-all id exwm-workspace--id-struts-alist)))) + (if pair + (setcdr pair struts) + (push (cons id struts) exwm-workspace--id-struts-alist)) (exwm-workspace--update-struts)) ;; Update workareas and set _NET_WORKAREA. (exwm-workspace--update-workareas) @@ -291,13 +287,9 @@ (when reply (setq struts (slot-value reply 'value) pair (assq id exwm-workspace--id-struts-alist)) - (if struts - (if pair - (setcdr pair struts) - (push (cons id struts) exwm-workspace--id-struts-alist)) - (when pair - (setq exwm-workspace--id-struts-alist - (assq-delete-all id exwm-workspace--id-struts-alist)))) + (if pair + (setcdr pair struts) + (push (cons id struts) exwm-workspace--id-struts-alist)) (exwm-workspace--update-struts)) ;; Update workareas and set _NET_WORKAREA. (exwm-workspace--update-workareas)