; * exwm-floating.el (exwm-floating--unset-floating): Reposition an X

; window when it changes from floating to tiling layout.
This commit is contained in:
Chris Feng 2016-07-29 17:11:28 +08:00
parent 719b825bc4
commit f52848595d

View file

@ -277,6 +277,14 @@
(make-instance 'xcb:ChangeWindowAttributes (make-instance 'xcb:ChangeWindowAttributes
:window id :value-mask xcb:CW:EventMask :window id :value-mask xcb:CW:EventMask
:event-mask exwm--client-event-mask)) :event-mask exwm--client-event-mask))
;; The X window might have been moved due to the floating border.
(xcb:+request exwm--connection
(make-instance 'xcb:ConfigureWindow
:window id
:value-mask (logior xcb:ConfigWindow:X
xcb:ConfigWindow:Y)
:x 0
:y 0))
;; Reparent the floating frame back to the root window. ;; Reparent the floating frame back to the root window.
(let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id)) (let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id))
(frame-container (frame-parameter exwm--floating-frame (frame-container (frame-parameter exwm--floating-frame