about summary refs log tree commit diff
path: root/exwm-manage.el
diff options
context:
space:
mode:
authorRam Krishnan <kriyative@gmail.com>2017-10-26T03·50-0700
committerRam Krishnan <kriyative@gmail.com>2017-11-05T16·13-0800
commit93d96757b611cc3d9e990d28e82f349c61dbdaa3 (patch)
tree3a40cbfbf2957968612f4a94dbd60e0b4eede1f5 /exwm-manage.el
parent3edf2e8880aff11803f4d4889914e05c3543e6e7 (diff)
Fix for "Selecting deleted buffer" exception
Diffstat (limited to 'exwm-manage.el')
-rw-r--r--exwm-manage.el22
1 files changed, 7 insertions, 15 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index 36a989665e..fffc677c7f 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 ()