about summary refs log tree commit diff
path: root/exwm-floating.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-07-29T09·11+0800
committerChris Feng <chris.w.feng@gmail.com>2016-07-29T09·11+0800
commitf52848595d44064bb092d3028a7f9afe1107faf1 (patch)
tree884fbae231088bc7944ea012b30f4747988c58ab /exwm-floating.el
parent719b825bc4e5471ca2a51f1f9f3b1149a1532c24 (diff)
; * exwm-floating.el (exwm-floating--unset-floating): Reposition an X
; window when it changes from floating to tiling layout.
Diffstat (limited to 'exwm-floating.el')
-rw-r--r--exwm-floating.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/exwm-floating.el b/exwm-floating.el
index 7931c661c7..6702e38d61 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -277,6 +277,14 @@
             (make-instance 'xcb:ChangeWindowAttributes
                            :window id :value-mask xcb:CW:EventMask
                            :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.
         (let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id))
               (frame-container (frame-parameter exwm--floating-frame