about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-manage.el22
1 files changed, 7 insertions, 15 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index 36a989665e94..fffc677c7f0e 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -405,21 +405,13 @@ manager is shutting down."
         (xcb:flush exwm--connection))
       (let ((kill-buffer-func
              (lambda (buffer)
-               (with-current-buffer buffer
-                 (let ((kill-buffer-query-functions nil)
-                       (floating exwm--floating-frame))
-                   (kill-buffer)
-                   (when floating
-                     (select-window
-                      (frame-selected-window exwm-workspace--current))))))))
-        (if (not (active-minibuffer-window))
-            ;; Kill the buffer as usual.
-            (funcall kill-buffer-func buffer)
-          ;; This can happen when this buffer was requested to be killed
-          ;; from the minibuffer (e.g. with `ido-kill-buffer-at-head').
-          ;; We have to exit the minibuffer first or there'll be a
-          ;; "selecting deleted buffer" error.
-          (run-with-idle-timer 0 nil kill-buffer-func buffer)
+               (let ((kill-buffer-query-functions nil))
+                 (when exwm--floating-frame
+                   (select-window
+                    (frame-selected-window exwm-workspace--current)))
+                 (kill-buffer buffer)))))
+        (run-with-idle-timer 0 nil kill-buffer-func buffer)
+        (when (active-minibuffer-window)
           (exit-minibuffer))))))
 
 (defun exwm-manage--scan ()