From e7f492c400011c4583ff49711142fdde4055db53 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 20 Oct 2019 13:53:09 -0400 Subject: [PATCH] ui/popup: fix "back to top level" issue The popup manager (by default) auto-kills most popup buffers after ~5s (controlled by the :ttl property). However, when backtrace buffers are killed, it calls `top-level`. When the popup manager kills the buffer, this causes janky cursor movement and the message "Back to top level" to be displayed in the minibuffer. --- modules/ui/popup/autoload/popup.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 30dc9ea0c..24202a760 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -28,7 +28,11 @@ the buffer is visible, then set another timer and try again later." (when-let (process (get-buffer-process buffer)) (kill-process process)) (let (kill-buffer-query-functions) - (kill-buffer buffer)))))))))) + ;; HACK The debugger backtrace buffer, when killed, called + ;; `top-level'. This causes jumpiness when the popup + ;; manager tries to clean it up. + (cl-letf (((symbol-function #'top-level) #'ignore)) + (kill-buffer buffer))))))))))) (defun +popup--delete-window (window) "Do housekeeping before destroying a popup window.