diff options
author | Ram Krishnan <kriyative@gmail.com> | 2017-10-26T03·50-0700 |
---|---|---|
committer | Ram Krishnan <kriyative@gmail.com> | 2017-11-05T16·13-0800 |
commit | 93d96757b611cc3d9e990d28e82f349c61dbdaa3 (patch) | |
tree | 3a40cbfbf2957968612f4a94dbd60e0b4eede1f5 | |
parent | 3edf2e8880aff11803f4d4889914e05c3543e6e7 (diff) |
Fix for "Selecting deleted buffer" exception
-rw-r--r-- | exwm-manage.el | 22 |
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 () |