[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windo
From: |
Juri Linkov |
Subject: |
bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows |
Date: |
Tue, 16 May 2023 20:32:56 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
>>> 1. (setq debug-on-error t enable-recursive-minibuffers t)
>>> 2. M-: (or any other prompt like 'M-x')
>>> 3. Resize the minibuffer window e.g. with the mouse to at least 4 lines high
>>> 4. M-x windmove-swap-states-up RET
>>> 5. Click on the bottom window
>>> 6. C-x t 2
>>> 7. Click on the bottom window
>>> 8. C-x t 2
>>>
>>> Debugger entered--Lisp error: (error "Specified root is not an ancestor of
>>> specified win...")
>>> delete-other-windows-internal(#<window 4 on *scratch*> #<window 7 on
>>> *Minibuf-1*>)
>>> delete-other-windows()
>>> tab-bar-new-tab-to()
>>> tab-new(nil)
>>
>> Maybe the simplest fix is just not to create such a broken
>> window configuration:
>>
>> diff --git a/lisp/windmove.el b/lisp/windmove.el
>> index 06ce16c0d42..57511291588 100644
>> --- a/lisp/windmove.el
>> +++ b/lisp/windmove.el
>> @@ -724,6 +724,8 @@ windmove-swap-states-in-direction
>> nil windmove-wrap-around
>> 'nomini)))
>> (cond ((or (null other-window) (window-minibuffer-p other-window))
>> (user-error "No window %s from selected window" dir))
>> + ((window-minibuffer-p (selected-window))
>> + (user-error "Selected window is the minibuffer"))
>> (t
>> (window-swap-states nil other-window)))))
>
> This is another patch that could be installed either to emacs-29 or master.
This guard is pushed to master. But the root problem still persists.
It can be reproduced in emacs-28/29/30:
0. emacs -Q
1. M-x
2. C-x t 2
3. C-x o ;; switches to the minibuffer
4. C-x t 2
Debugger entered--Lisp error: (error "Specified root is not an ancestor of
specified win...")
delete-other-windows-internal(#<window 4 on *Minibuf-1*> #<window 8 on
*scratch*>)
delete-other-windows()
tab-bar-new-tab-to()
tab-new(nil)
funcall-interactively(tab-new nil)
command-execute(tab-new)
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Juri Linkov, 2023/05/15
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows,
Juri Linkov <=
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Juri Linkov, 2023/05/16
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, martin rudalics, 2023/05/17
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Juri Linkov, 2023/05/17
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, martin rudalics, 2023/05/18
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Juri Linkov, 2023/05/18
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, martin rudalics, 2023/05/19
- bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Juri Linkov, 2023/05/19
bug#62427: tab-bar-new-tab-to now handles cases with multiple side-windows, Eli Zaretskii, 2023/05/16