Fix wrong stacking order of tiling X windows

* exwm-manage.el (exwm-manage--on-MapNotify): Avoid restacking tiling
X windows on the top when force triggering hierarchy change events.
This commit is contained in:
Chris Feng 2018-11-11 00:00:00 +00:00
parent 9dcfff568f
commit d650159648

View file

@ -674,11 +674,20 @@ border-width: %d; sibling: #x%x; stack-mode: %d"
(exwm--log "id=#x%x" window) (exwm--log "id=#x%x" window)
;; With this we ensure that a "window hierarchy change" happens after ;; With this we ensure that a "window hierarchy change" happens after
;; mapping the window, as some servers (XQuartz) do not generate it. ;; mapping the window, as some servers (XQuartz) do not generate it.
(with-current-buffer (exwm--id->buffer window)
(if exwm--floating-frame
(xcb:+request exwm--connection (xcb:+request exwm--connection
(make-instance 'xcb:ConfigureWindow (make-instance 'xcb:ConfigureWindow
:window window :window window
:value-mask xcb:ConfigWindow:StackMode :value-mask xcb:ConfigWindow:StackMode
:stack-mode xcb:StackMode:Above)) :stack-mode xcb:StackMode:Above))
(xcb:+request exwm--connection
(make-instance 'xcb:ConfigureWindow
:window window
:value-mask (logior xcb:ConfigWindow:Sibling
xcb:ConfigWindow:StackMode)
:sibling exwm--guide-window
:stack-mode xcb:StackMode:Above))))
(xcb:flush exwm--connection))))) (xcb:flush exwm--connection)))))
(defun exwm-manage--on-DestroyNotify (data synthetic) (defun exwm-manage--on-DestroyNotify (data synthetic)