popup: redraw-frame after closing (on emacs<=24)
This commit is contained in:
parent
12361c3aa6
commit
ed9b000714
2 changed files with 15 additions and 12 deletions
|
@ -150,7 +150,7 @@
|
||||||
(window (and buffer (get-buffer-window buffer))))
|
(window (and buffer (get-buffer-window buffer))))
|
||||||
(when buffer
|
(when buffer
|
||||||
(shut-up! (quickrun/kill-running-process))
|
(shut-up! (quickrun/kill-running-process))
|
||||||
(doom/popup-close window nil t))))
|
(doom/popup-close window))))
|
||||||
(advice-add 'quickrun :before 'doom*quickrun-close-popup)
|
(advice-add 'quickrun :before 'doom*quickrun-close-popup)
|
||||||
(advice-add 'quickrun-region :before 'doom*quickrun-close-popup)
|
(advice-add 'quickrun-region :before 'doom*quickrun-close-popup)
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defmacro doom/popup-save (&rest body)
|
(defmacro doom/popup-save (&rest body)
|
||||||
`(let ((popup-p (doom/popup-p)))
|
`(let ((popup-p (doom/popup-p)))
|
||||||
(when popup-p (doom/popup-close-all t))
|
(when popup-p (doom/popup-close-all t t))
|
||||||
,@body
|
,@body
|
||||||
(when popup-p
|
(when popup-p
|
||||||
(save-selected-window
|
(save-selected-window
|
||||||
|
@ -34,15 +34,12 @@
|
||||||
(setq doom-last-popup buffer)))
|
(setq doom-last-popup buffer)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/popup-close (&optional window dont-kill dont-close-all)
|
(defun doom/popup-close (&optional window dont-kill dont-redraw)
|
||||||
"Find and close the currently active popup (if available)."
|
"Find and close the currently active popup (if available)."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((dont-kill (or doom-popup-protect dont-kill)))
|
(let ((dont-kill (or doom-popup-protect dont-kill)))
|
||||||
(when (not window)
|
(when (and (not window) (doom/popup-p (selected-window)))
|
||||||
(if (doom/popup-p (selected-window))
|
(setq window (selected-window)))
|
||||||
(setq window (selected-window))
|
|
||||||
(unless dont-close-all
|
|
||||||
(doom/popup-close-all dont-kill))))
|
|
||||||
(when (and window (window-live-p window))
|
(when (and window (window-live-p window))
|
||||||
;; REPL buffer
|
;; REPL buffer
|
||||||
(cond ((and (derived-mode-p 'comint-mode)
|
(cond ((and (derived-mode-p 'comint-mode)
|
||||||
|
@ -58,14 +55,18 @@
|
||||||
(delq 'process-kill-buffer-query-function
|
(delq 'process-kill-buffer-query-function
|
||||||
kill-buffer-query-functions)))
|
kill-buffer-query-functions)))
|
||||||
(kill-buffer (window-buffer window))))
|
(kill-buffer (window-buffer window))))
|
||||||
(delete-window window))))
|
(delete-window window)
|
||||||
|
(unless (or dont-redraw (>= emacs-major-version 25))
|
||||||
|
(redraw-frame)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/popup-close-all (&optional dont-kill-buffers)
|
(defun doom/popup-close-all (&optional dont-kill-buffers dont-redraw)
|
||||||
"Closes all popup windows (and kills the buffers if DONT-KILL-BUFFERS is non-nil)"
|
"Closes all popup windows (and kills the buffers if DONT-KILL-BUFFERS is non-nil)"
|
||||||
(interactive)
|
(interactive)
|
||||||
(mapc (lambda (w) (doom/popup-close w dont-kill-buffers))
|
(mapc (lambda (w) (doom/popup-close w dont-kill-buffers t))
|
||||||
doom-popup-windows)
|
doom-popup-windows)
|
||||||
|
(unless (or dont-redraw (>= emacs-major-version 25))
|
||||||
|
(redraw-frame))
|
||||||
(setq doom-popup-windows nil))
|
(setq doom-popup-windows nil))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
@ -104,7 +105,9 @@
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom*run-popup-post-hooks (&rest _)
|
(defun doom*run-popup-post-hooks (&rest _)
|
||||||
(with-current-buffer shackle-last-buffer
|
(with-current-buffer shackle-last-buffer
|
||||||
(run-hooks 'doom-popup-post-hook)))
|
(run-hooks 'doom-popup-post-hook)
|
||||||
|
(when (< emacs-major-version 25)
|
||||||
|
(redraw-frame))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom|popup-init ()
|
(defun doom|popup-init ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue