Fix systemtray position

* exwm-workspace.el (exwm-workspace--update-workareas-hook): New hook
run when workareas get updated.
(exwm-workspace--update-workareas): Run the hook.
* exwm-systemtray.el (exwm-systemtray--on-workspace-switch)
(exwm-systemtray--on-randr-refresh): Take struts into account when
calculating the position for systemtray.
(exwm-systemtray--on-struts-update): Alias of
`exwm-systemtray--on-randr-refresh'.
(exwm-systemtray--init, exwm-systemtray--exit): Manipulate
`exwm-workspace--update-workareas-hook'.
This commit is contained in:
Chris Feng 2017-02-24 23:05:43 +08:00
parent 0ae1e7327e
commit f299ca5ed7
2 changed files with 20 additions and 3 deletions

View file

@ -247,6 +247,8 @@ Value nil means to use the default position which is fixed at bottom, while
(append exwm-workspace--struts (list struts*))))))))))
(defvar exwm-workspace--workareas nil "Workareas (struts excluded).")
(defvar exwm-workspace--update-workareas-hook nil
"Normal hook run when workareas get updated.")
(defun exwm-workspace--update-workareas ()
"Update `exwm-workspace--workareas'."
@ -309,7 +311,8 @@ Value nil means to use the default position which is fixed at bottom, while
(cl-incf (aref w 3) delta))))))
;; Save the result.
(setq exwm-workspace--workareas workareas)
(xcb:flush exwm--connection)))
(xcb:flush exwm--connection))
(run-hooks 'exwm-workspace--update-workareas-hook))
(defvar exwm-workspace--fullscreen-frame-count 0
"Count the fullscreen workspace frames.")