core-popups: clone buffer if visible elsewhere
Allows us to modify the buffer in the pop up window indepdently from the rest.
This commit is contained in:
parent
29d01756ea
commit
ed6941e8ae
3 changed files with 8 additions and 4 deletions
|
@ -114,7 +114,8 @@ only close popups that have an :autoclose property in their rule (see
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/popup ()
|
(defun doom/popup ()
|
||||||
"Display currently selected buffer in a popup window."
|
"Display currently selected buffer in a popup window."
|
||||||
(doom-popup-buffer (current-buffer) :align t))
|
(interactive)
|
||||||
|
(doom-popup-buffer (current-buffer) :align t :autokill t))
|
||||||
|
|
||||||
(defun doom--popup-data (window)
|
(defun doom--popup-data (window)
|
||||||
(let ((buffer (window-buffer window)))
|
(let ((buffer (window-buffer window)))
|
||||||
|
|
|
@ -192,7 +192,11 @@ and setting `doom-popup-rules' within it. Returns the window."
|
||||||
(shackle-match (window-buffer (car args))))
|
(shackle-match (window-buffer (car args))))
|
||||||
((bufferp (car args))
|
((bufferp (car args))
|
||||||
(shackle-match (car args))))))
|
(shackle-match (car args))))))
|
||||||
(window (apply orig-fn args)))
|
window)
|
||||||
|
(when (get-buffer-window-list (car args) nil t)
|
||||||
|
(setq plist (append (list :autokill t) plist))
|
||||||
|
(setcar args (clone-indirect-buffer (buffer-name (car args)) nil t)))
|
||||||
|
(setq window (apply orig-fn args))
|
||||||
(unless window
|
(unless window
|
||||||
(error "No popup window was found for %s: %s" (car args) plist))
|
(error "No popup window was found for %s: %s" (car args) plist))
|
||||||
(with-selected-window window
|
(with-selected-window window
|
||||||
|
|
|
@ -74,8 +74,7 @@
|
||||||
|
|
||||||
(defun +doom|buffer-mode-off ()
|
(defun +doom|buffer-mode-off ()
|
||||||
"Disable `doom-buffer-mode' in popup buffers."
|
"Disable `doom-buffer-mode' in popup buffers."
|
||||||
(when (and doom-buffer-mode
|
(when doom-buffer-mode
|
||||||
(not (get-buffer-window-list)))
|
|
||||||
(doom-buffer-mode -1)))
|
(doom-buffer-mode -1)))
|
||||||
(add-hook 'doom-popup-mode-hook #'+doom|buffer-mode-off)
|
(add-hook 'doom-popup-mode-hook #'+doom|buffer-mode-off)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue