diff --git a/exwm-floating.el b/exwm-floating.el index 6f6cfecbf..f2cc09be4 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 a99186ceb..24a59f9fa 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -747,7 +747,7 @@ INDEX must not exceed the current number of workspaces." exwm--floating-frame))))) ;; Move the X window container. (set-window-buffer (get-buffer-window (current-buffer) t) - (other-buffer)) + (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))