diff options
Diffstat (limited to 'third_party/exwm/exwm-core.el')
-rw-r--r-- | third_party/exwm/exwm-core.el | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/third_party/exwm/exwm-core.el b/third_party/exwm/exwm-core.el index 5356ef9b97e1..995b590dc582 100644 --- a/third_party/exwm/exwm-core.el +++ b/third_party/exwm/exwm-core.el @@ -193,6 +193,21 @@ least SECS seconds later." (lsh (lsh (pop rgb) -8) 8) (lsh (pop rgb) -8))))) +(defun exwm--get-visual-depth-colormap (conn id) + "Get visual, depth and colormap from X window ID. +Return a three element list with the respective results." + (let (ret-visual ret-depth ret-colormap) + (with-slots (visual colormap) + (xcb:+request-unchecked+reply conn + (make-instance 'xcb:GetWindowAttributes :window id)) + (setq ret-visual visual) + (setq ret-colormap colormap)) + (with-slots (depth) + (xcb:+request-unchecked+reply conn + (make-instance 'xcb:GetGeometry :drawable id)) + (setq ret-depth depth)) + (list ret-visual ret-depth ret-colormap))) + ;; Internal variables (defvar-local exwm--id nil) ;window ID (defvar-local exwm--configurations nil) ;initial configurations. |