Subject: bug#56305: 29.0.50; 'yes-or-no-p' deselects minibuffer frame

From: Eli Zaretskii <[email-masked]>
Date: Wed, 20 Jul 2022 19:02:16 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Wed, 20 Jul 2022 10:54:46 -0400
> 
> >> But `save-selected-window` can't&shouldn't bind `inhibit-redisplay`.
> > I don't think I understand.  First, how is save-selected-window
> > related to this discussion?
> 
> `save-selected-window` uses `select-window`.

That select-window will do nothing unless BODY changes the selected
window, right?  So it isn't save-selected-window's business to do
anything about the issue at hand: it's the business of that BODY.

> [ Actually I meant to write `with-selected-window` which is even more
>   directly related, but the same hold for `save-selected-window`.  ]

What is the problem with with-selected-window, exactly?

> > And second, why cannot/shouldn't it bind inhibit-redisplay?
> 
> Because code within a `save-selected-window` may want to use `sit-for`,
> `read-event`, `recursive-edit`, `read-from-minibuffer`, ..

You assume the binding should be in effect while BODY runs.  But
that's not needed: you only need to do that around the call to
select-window (if at all).