[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 1f2bd54 2/4: Fix a regression with systemtray
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 1f2bd54 2/4: Fix a regression with systemtray |
Date: |
Sun, 11 Aug 2019 12:24:59 -0400 (EDT) |
branch: externals/exwm
commit 1f2bd54c117b3eeb88b6af1e8627030f00e37898
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Fix a regression with systemtray
* exwm-systemtray.el (exwm-systemtray--on-workspace-switch)
(exwm-systemtray--on-randr-refresh): Instead of retrieving the real
frame height, manually calculate it with workarea height and
menu-bar/tool-bar size.
---
exwm-systemtray.el | 40 +++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index 80505c2..a095bfa 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -331,27 +331,37 @@ You shall use the default value if using auto-hide
minibuffer."
"Reparent/Refresh the system tray in `exwm-workspace-switch-hook'."
(exwm--log)
(unless (exwm-workspace--minibuffer-own-frame-p)
- (xcb:+request exwm-systemtray--connection
- (make-instance 'xcb:ReparentWindow
- :window exwm-systemtray--embedder-window
- :parent (string-to-number
- (frame-parameter exwm-workspace--current
- 'window-id))
- :x 0
- :y (- (frame-pixel-height exwm-workspace--current)
- exwm-systemtray-height))))
+ (let ((geometry (frame-geometry exwm-workspace--current)))
+ (xcb:+request exwm-systemtray--connection
+ (make-instance 'xcb:ReparentWindow
+ :window exwm-systemtray--embedder-window
+ :parent (string-to-number
+ (frame-parameter exwm-workspace--current
+ 'window-id))
+ :x 0
+ :y (- (elt (elt exwm-workspace--workareas
+ exwm-workspace-current-index)
+ 3)
+ (or (cddr (assq 'menu-bar-size geometry)) 0)
+ (or (cddr (assq 'tool-bar-size geometry)) 0)
+ exwm-systemtray-height)))))
(exwm-systemtray--refresh))
(defun exwm-systemtray--on-randr-refresh ()
"Reposition/Refresh the system tray in `exwm-randr-refresh-hook'."
(exwm--log)
(unless (exwm-workspace--minibuffer-own-frame-p)
- (xcb:+request exwm-systemtray--connection
- (make-instance 'xcb:ConfigureWindow
- :window exwm-systemtray--embedder-window
- :value-mask xcb:ConfigWindow:Y
- :y (- (frame-pixel-height exwm-workspace--current)
- exwm-systemtray-height))))
+ (let ((geometry (frame-geometry exwm-workspace--current)))
+ (xcb:+request exwm-systemtray--connection
+ (make-instance 'xcb:ConfigureWindow
+ :window exwm-systemtray--embedder-window
+ :value-mask xcb:ConfigWindow:Y
+ :y (- (elt (elt exwm-workspace--workareas
+ exwm-workspace-current-index)
+ 3)
+ (or (cddr (assq 'menu-bar-size geometry)) 0)
+ (or (cddr (assq 'tool-bar-size geometry)) 0)
+ exwm-systemtray-height)))))
(exwm-systemtray--refresh))
(defalias 'exwm-systemtray--on-struts-update