emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tab-bar: Making a new tab without no-delete-other-windows windows


From: Adam Porter
Subject: Re: tab-bar: Making a new tab without no-delete-other-windows windows
Date: Fri, 24 Sep 2021 02:12:50 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Juri Linkov <juri@linkov.net> writes:

>> I've been experimenting with tab-bar, and I noticed that, when I make a
>> new tab, e.g. with "C-x t 2", any windows that have the
>> no-delete-other-windows parameter set are displayed in the new tab.
>>
>> I guess sometimes that might be what's desired, e.g. when using a side
>> window that the user wants to be displayed regardless of window
>> configuration.  But in my case, I have some side windows in a tab that
>> are only relevant to that tab's purpose, and when I make a new tab, I
>> don't want those side windows to be included in it.  As it is, I have to
>> "C-x 0" on each unwanted window after making the new tab, which is
>> awkward.
>>
>> So I added this to my config, which seems to solve it for me:
>>
>>   (use-package tab-bar
>>     :config
>>     (defun ap/really-delete-other-windows (&rest _ignore)
>>       (let ((ignore-window-parameters t))
>>         (delete-other-windows)))
>>     (cl-pushnew #'ap/really-delete-other-windows
>>                 tab-bar-tab-post-open-functions))
>>
>> I wonder, would it be worth including something like this by default, or
>> as a "batteries-included" choice in the customization option?
>
> If this works for you, then maybe we need to include the same fix by default?
>
> ```
> diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
> index 69eb3a3608..55a19db8bb 100644
> --- a/lisp/tab-bar.el
> +++ b/lisp/tab-bar.el
> @@ -1245,7 +1245,8 @@ tab-bar-new-tab-to
>        ;; Handle the case when it's called in the active minibuffer.
>        (when (minibuffer-selected-window)
>          (select-window (minibuffer-selected-window)))
> -      (delete-other-windows)
> +      (let ((ignore-window-parameters t))
> +        (delete-other-windows))
>        ;; Create a new window to get rid of old window parameters
>        ;; (e.g. prev/next buffers) of old window.
>        (split-window) (delete-window)
> ```

For myself, I have no objection to that.  :)  But I could imagine that
some users might sometimes have a side window that they would want to
persist when making a new tab; in that case, I guess that change would
prevent them from doing that.  Then again, that might be very rare,
considering how uncommon it seems to be to use dedicated side windows,
in general.  So I don't know what would be best.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]