about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-floating.el5
-rw-r--r--exwm-workspace.el7
2 files changed, 6 insertions, 6 deletions
diff --git a/exwm-floating.el b/exwm-floating.el
index 6f6cfecbfe4a..f2cc09be46f4 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -82,8 +82,9 @@ context of the corresponding buffer.")
 (defun exwm-floating--set-floating (id)
   "Make window ID floating."
   (let ((window (get-buffer-window (exwm--id->buffer id))))
-    (when window                        ;window in non-floating state
-      (set-window-buffer window (other-buffer)))) ;hide it first
+    (when window
+      ;; Hide the non-floating X window first.
+      (set-window-buffer window (other-buffer nil t))))
   (let* ((original-frame exwm-workspace--current)
          ;; Create new frame
          (frame (with-current-buffer
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 958511270b8d..24a59f9fab07 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -746,10 +746,9 @@ INDEX must not exceed the current number of workspaces."
                                        (frame-root-window
                                         exwm--floating-frame)))))
           ;; Move the X window container.
-          (if (eq frame exwm-workspace--current)
-              (set-window-buffer (get-buffer-window (current-buffer) t)
-                                 (other-buffer))
-            (bury-buffer)
+          (set-window-buffer (get-buffer-window (current-buffer) t)
+                             (other-buffer nil t))
+          (unless (eq frame exwm-workspace--current)
             ;; Clear the 'exwm-selected-window' frame parameter.
             (set-frame-parameter frame 'exwm-selected-window nil))
           (exwm-layout--hide id)