[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 06c1b04: Set background pixmap for system tray emb
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 06c1b04: Set background pixmap for system tray embedder |
Date: |
Sun, 7 Aug 2016 05:37:47 +0000 (UTC) |
branch: externals/exwm
commit 06c1b0485a1815d13ded7bd717adf5d9735be3df
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Set background pixmap for system tray embedder
* exwm-systemtray.el (exwm-systemtray--init): Make embedder use the same
depth and pixmap of the parent; the parent is always a Emacs frame.
---
exwm-systemtray.el | 43 +++++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index 25f5fa5..e978f64 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -370,27 +370,38 @@ You shall use the default value if using auto-hide
minibuffer.")
:data xcb:systemtray:ORIENTATION:HORZ)))
;; Create the embedder.
(let ((id (xcb:generate-id exwm-systemtray--connection))
- parent y)
+ frame parent depth y)
(setq exwm-systemtray--embedder id)
- (xcb:+request exwm-systemtray--connection
- (make-instance 'xcb:CreateWindow
- :depth 0 :wid id :parent exwm--root
- :x 0 :y 0 :width 1 :height exwm-systemtray-height
- :border-width 0 :class xcb:WindowClass:CopyFromParent
- :visual 0 :value-mask xcb:CW:EventMask
- :event-mask xcb:EventMask:SubstructureNotify))
(if (exwm-workspace--minibuffer-own-frame-p)
- (setq parent (frame-parameter exwm-workspace--minibuffer
- 'exwm-container)
- ;; Vertically centered.
- y (/ (- (line-pixel-height) exwm-systemtray-height) 2))
- (setq parent (string-to-number (frame-parameter exwm-workspace--current
- 'window-id))
+ (setq frame exwm-workspace--minibuffer
+ y (if (>= (line-pixel-height) exwm-systemtray-height)
+ ;; Bottom aligned.
+ (- (line-pixel-height) exwm-systemtray-height)
+ ;; Vertically centered.
+ (/ (- (line-pixel-height) exwm-systemtray-height) 2)))
+ (setq frame exwm-workspace--current
;; Bottom aligned.
y (- (exwm-workspace--current-height) exwm-systemtray-height)))
+ (setq parent (string-to-number (frame-parameter frame 'window-id))
+ depth (slot-value (xcb:+request-unchecked+reply exwm--connection
+ (make-instance 'xcb:GetGeometry
+ :drawable parent))
+ 'depth))
(xcb:+request exwm-systemtray--connection
- (make-instance 'xcb:ReparentWindow
- :window id :parent parent :x 0 :y y))
+ (make-instance 'xcb:CreateWindow
+ :depth depth
+ :wid id
+ :parent parent
+ :x 0
+ :y y
+ :width 1
+ :height exwm-systemtray-height
+ :border-width 0
+ :class xcb:WindowClass:CopyFromParent
+ :visual 0
+ :value-mask (logior xcb:CW:BackPixmap xcb:CW:EventMask)
+ :background-pixmap xcb:BackPixmap:ParentRelative
+ :event-mask xcb:EventMask:SubstructureNotify))
;; Set _NET_WM_NAME.
(xcb:+request exwm-systemtray--connection
(make-instance 'xcb:ewmh:set-_NET_WM_NAME
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/exwm 06c1b04: Set background pixmap for system tray embedder,
Chris Feng <=