tab-bar-new-tab: inhibit side-window checks

Previously, calling 'tab-bar-new-tab-to' only removed the
'window-side' property on the currently selected window,
and then a call to 'delete-other-windows' was made to
ensure that the selected window was the only window.
We can skip this check by shadowing 'window--sides-inhibit-check'
to t.
* lisp/tab-bar.el (tab-bar-new-tab-to): Inhibit side-window checks.
(Bug#62427)

Copyright-paperwork-exempt: yes
This commit is contained in:
Benson Chu 2023-03-24 15:38:03 -05:00 committed by Eli Zaretskii
parent 087e818194
commit 99add09d5e

View file

@ -1552,15 +1552,14 @@ After the tab is created, the hooks in
;; Handle the case when it's called in the active minibuffer. ;; Handle the case when it's called in the active minibuffer.
(when (minibuffer-selected-window) (when (minibuffer-selected-window)
(select-window (minibuffer-selected-window))) (select-window (minibuffer-selected-window)))
;; Remove window parameters that can cause problems (let ((ignore-window-parameters t)
;; with `delete-other-windows' and `split-window'. (window--sides-inhibit-check t))
(unless (eq tab-bar-new-tab-choice 'clone)
(set-window-parameter nil 'window-atom nil)
(set-window-parameter nil 'window-side nil))
(let ((ignore-window-parameters t))
(if (eq tab-bar-new-tab-choice 'clone) (if (eq tab-bar-new-tab-choice 'clone)
;; Create new unique windows with the same layout ;; Create new unique windows with the same layout
(window-state-put (window-state-get)) (window-state-put (window-state-get))
;; Remove window parameters that can cause problems
;; with `delete-other-windows' and `split-window'.
(set-window-parameter nil 'window-atom nil)
(delete-other-windows) (delete-other-windows)
(if (eq tab-bar-new-tab-choice 'window) (if (eq tab-bar-new-tab-choice 'window)
;; Create new unique window from remaining window ;; Create new unique window from remaining window