diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2015-09-09T03·26+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2015-09-09T03·26+0800 |
commit | 5373c1df1a8432f6a54e8ded8c9a145842c067e2 (patch) | |
tree | 16bc7e1e40bcbe2b1f058514f1a6b10dd12d48d9 /exwm-layout.el | |
parent | eafd031c556ecfe986c656ca72fcde7e06ac819a (diff) |
Add support for xcb:Atom:_NET_CLIENT_LIST_STACKING etc
The _NET_CLIENT_LIST_STACKING EWMH property is essential for e.g. the tabbar of chromium to work correctly. * exwm-input.el: Remove invalid TODO item. * exwm.el (exwm--init-icccm-ewmh): Add xcb:Atom:_NET_CLIENT_LIST and xcb:Atom:_NET_CLIENT_LIST_STACKING to _NET_SUPPORTED. * exwm-layout.el (exwm-layout--refresh): Update _NET_CLIENT_LIST_STACKING. * exwm-manage.el (exwm-manage--manage-window, exwm-manage--unmanage-window): Update _NET_CLIENT_LIST.
Diffstat (limited to 'exwm-layout.el')
-rw-r--r-- | exwm-layout.el | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/exwm-layout.el b/exwm-layout.el index a14651a46df9..ae1f48de8f86 100644 --- a/exwm-layout.el +++ b/exwm-layout.el @@ -239,7 +239,20 @@ (with-current-buffer (window-buffer window) (when (and (eq major-mode 'exwm-mode) (or exwm--floating-frame (not (eq frame exwm--frame)))) - (set-window-buffer window placeholder))))))) + (set-window-buffer window placeholder)))) + ;; Update _NET_CLIENT_LIST_STACKING + (xcb:+request exwm--connection + (make-instance 'xcb:ewmh:set-_NET_CLIENT_LIST_STACKING + :window exwm--root + :data (vconcat + (delq nil + (mapcar + (lambda (buffer) + (with-current-buffer buffer + (when (eq major-mode 'exwm-mode) + exwm--id))) + (buffer-list)))))) + (xcb:flush exwm--connection)))) (defun exwm-layout--on-minibuffer-setup () "Refresh layout when minibuffer grows." |