From 8fcc12ed08543713bf654cb37f76c85d1b08c46e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 25 Jun 2018 19:28:09 +0200 Subject: [PATCH] Add +popup-display-buffer-fullframe Adds support for the saved-wconf window parameter. If a popup possesses a window configuration in this parameter, it will be restored when the popup (or its popup buffer) is killed. --- modules/ui/popup/autoload/popup.el | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 06f91e670..417a5cba2 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -70,7 +70,9 @@ and enables `+popup-buffer-mode'." (funcall autosave buffer)))) (with-current-buffer buffer (save-buffer))) (let ((ignore-window-parameters t)) - (delete-window window)) + (if-let* ((wconf (window-parameter window 'saved-wconf))) + (set-window-configuration wconf) + (delete-window window))) (unless (window-live-p window) (with-current-buffer buffer (set-buffer-modified-p nil) @@ -376,6 +378,19 @@ the message buffer in a popup window." prevent the popup(s) from messing up the UI (or vice versa)." (save-popups! (apply orig-fn args))) +;;;###autoload +(defun +popup-display-buffer-fullframe (buffer alist) + "Displays the buffer fullscreen." + (let ((wconf (current-window-configuration))) + (when-let (window (or (display-buffer-reuse-window buffer alist) + (display-buffer-same-window buffer alist) + (display-buffer-pop-up-window buffer alist) + (display-buffer-use-some-window buffer alist))) + (set-window-parameter window 'saved-wconf wconf) + (add-to-list 'window-persistent-parameters '(saved-wconf . t)) + (delete-other-windows window) + window))) + ;;;###autoload (defun +popup-display-buffer-stacked-side-window (buffer alist) "A `display-buffer' action that serves as an alternative to