Fix maximize/enlargen commands around dedicated windows #2337
This commit is contained in:
parent
9c594d3f42
commit
59a6cb72be
1 changed files with 30 additions and 30 deletions
|
@ -103,6 +103,7 @@ See `display-line-numbers' for what these values mean."
|
||||||
(delete-frame))
|
(delete-frame))
|
||||||
(save-buffers-kill-emacs)))
|
(save-buffers-kill-emacs)))
|
||||||
|
|
||||||
|
(defvar doom--maximize-last-wconf nil)
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/window-maximize-buffer ()
|
(defun doom/window-maximize-buffer ()
|
||||||
"Close other windows to focus on this one. Activate again to undo this. If the
|
"Close other windows to focus on this one. Activate again to undo this. If the
|
||||||
|
@ -110,41 +111,40 @@ window changes before then, the undo expires.
|
||||||
|
|
||||||
Alternatively, use `doom/window-enlargen'."
|
Alternatively, use `doom/window-enlargen'."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (and (one-window-p)
|
(setq doom--maximize-last-wconf
|
||||||
(assq ?_ register-alist))
|
(if (and (null (cdr (cl-remove-if #'window-dedicated-p (window-list))))
|
||||||
(jump-to-register ?_)
|
doom--maximize-last-wconf)
|
||||||
(when (and (bound-and-true-p +popup-mode)
|
(ignore (set-window-configuration doom--maximize-last-wconf))
|
||||||
(+popup-window-p))
|
(when (and (bound-and-true-p +popup-mode)
|
||||||
(user-error "Cannot maximize a popup, use `+popup/raise' first or use `doom/window-enlargen' instead"))
|
(+popup-window-p))
|
||||||
(window-configuration-to-register ?_)
|
(user-error "Cannot maximize a popup, use `+popup/raise' first or use `doom/window-enlargen' instead"))
|
||||||
(delete-other-windows)))
|
(prog1 (current-window-configuration)
|
||||||
|
(delete-other-windows)))))
|
||||||
|
|
||||||
(defvar doom--window-enlargened nil)
|
(defvar doom--enlargen-last-wconf nil)
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/window-enlargen ()
|
(defun doom/window-enlargen ()
|
||||||
"Enlargen the current window to focus on this one. Does not close other
|
"Enlargen the current window to focus on this one. Does not close other
|
||||||
windows (unlike `doom/window-maximize-buffer') Activate again to undo."
|
windows (unlike `doom/window-maximize-buffer'). Activate again to undo."
|
||||||
(interactive)
|
(interactive)
|
||||||
(setq doom--window-enlargened
|
(setq doom--enlargen-last-wconf
|
||||||
(if (and doom--window-enlargened
|
(if doom--enlargen-last-wconf
|
||||||
(assq ?_ register-alist))
|
(ignore (set-window-configuration doom--enlargen-last-wconf))
|
||||||
(ignore (ignore-errors (jump-to-register ?_)))
|
(prog1 (current-window-configuration)
|
||||||
(window-configuration-to-register ?_)
|
(let* ((window (selected-window))
|
||||||
(let* ((window (selected-window))
|
(dedicated-p (window-dedicated-p window))
|
||||||
(dedicated-p (window-dedicated-p window))
|
(preserved-p (window-parameter window 'window-preserved-size))
|
||||||
(preserved-p (window-parameter window 'window-preserved-size))
|
(ignore-window-parameters t))
|
||||||
(ignore-window-parameters t))
|
(unwind-protect
|
||||||
(unwind-protect
|
(progn
|
||||||
(progn
|
(when dedicated-p
|
||||||
(when dedicated-p
|
(set-window-dedicated-p window nil))
|
||||||
(set-window-dedicated-p window nil))
|
(when preserved-p
|
||||||
(when preserved-p
|
(set-window-parameter window 'window-preserved-size nil))
|
||||||
(set-window-parameter window 'window-preserved-size nil))
|
(maximize-window window))
|
||||||
(maximize-window window))
|
(set-window-dedicated-p window dedicated-p)
|
||||||
(set-window-dedicated-p window dedicated-p)
|
(when preserved-p
|
||||||
(when preserved-p
|
(set-window-parameter window 'window-preserved-size preserved-p))))))))
|
||||||
(set-window-parameter window 'window-preserved-size preserved-p)))
|
|
||||||
t))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/window-maximize-horizontally ()
|
(defun doom/window-maximize-horizontally ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue