bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#52491: 28.0.90; Regression in window deletion with minibuffer


From: Juri Linkov
Subject: bug#52491: 28.0.90; Regression in window deletion with minibuffer
Date: Sun, 19 Dec 2021 20:25:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu)

>> I checked that the value is the same in 27 and 28.
>
> Not here.  If with
>
> (setq enable-recursive-minibuffers t)
>
> followed by M-x, TAB, kp-prior and
>
> M-: (window-parameter nil 'quit-restore)
>
> Emacs 27.2.50 gets me
>
> (window window #<window 4 on  *Minibuf-1*> #<buffer *Completions*>)
>
> while Emacs 28.0.90 gets me nil.

I get nil too, but I don't believe this value.
Maybe because of some strange window interactions,
the displayed value is wrong.  When I tried to print
the real value with 'message' in the *Messages* value,
it was the same as in 27.2.90.

>> But while comparing
>> quit-restore-window in 27 and 28 indeed there are many differences.
>>
>> In 27, quit-restore-window calls window--delete, and then later does
>> `(select-window (nth 2 quit-restore))'.
>>
>> But in 28, for the dedicated *Completions* window it calls
>> window--delete, but doesn't call `(select-window (nth 2 quit-restore))'
>> afterwards, that is another `cond' branch.
>
> All these are easily explained by my observation above.  And, with Emacs
> 27 the *Completions* window is softly dedicated to its buffer here while
> with Emacs 28 it is not dedicated to its buffer.  Please recheck.

I checked that in 28 in 'quit-restore-window', only these 2 lines are used:

     ((and dedicated (not (eq dedicated 'side))
           (window--delete window 'dedicated (eq bury-or-kill 'kill))))

but these lines are not used in 28:

      (when (window-live-p (nth 2 quit-restore))
        (select-window (nth 2 quit-restore)))

But in 27 they correctly selected the minibuffer window.





reply via email to

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