Add support for desktop and dock

* exwm-manage.el (exwm-manage--manage-window): Add support for
_NET_WM_WINDOW_TYPE_DESKTOP and _NET_WM_WINDOW_TYPE_DOCK (they are not
reparented).
This commit is contained in:
Chris Feng 2015-12-11 12:11:24 +08:00
parent 3b19dad162
commit 4d5dd85dcc

View file

@ -111,13 +111,17 @@ corresponding buffer.")
(xcb:+request exwm--connection (xcb:+request exwm--connection
(make-instance 'xcb:MapWindow :window id)) (make-instance 'xcb:MapWindow :window id))
(with-slots (x y width height) exwm--geometry (with-slots (x y width height) exwm--geometry
;; Reparent to virtual root (essential) ;; Reparent to virtual root
(unless (or (memq xcb:Atom:_NET_WM_WINDOW_TYPE_DESKTOP
exwm-window-type)
(memq xcb:Atom:_NET_WM_WINDOW_TYPE_DOCK
exwm-window-type))
(xcb:+request exwm--connection (xcb:+request exwm--connection
(make-instance 'xcb:ReparentWindow (make-instance 'xcb:ReparentWindow
:window id :window id
:parent (frame-parameter exwm-workspace--current :parent (frame-parameter exwm-workspace--current
'exwm-window-id) 'exwm-window-id)
:x x :y y)) :x x :y y)))
;; Center window of type _NET_WM_WINDOW_TYPE_SPLASH ;; Center window of type _NET_WM_WINDOW_TYPE_SPLASH
(when (memq xcb:Atom:_NET_WM_WINDOW_TYPE_SPLASH exwm-window-type) (when (memq xcb:Atom:_NET_WM_WINDOW_TYPE_SPLASH exwm-window-type)
(xcb:+request exwm--connection (xcb:+request exwm--connection