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

From: martin rudalics <[email-masked]>
Date: Tue, 12 Jul 2022 09:33:00 +0200

> Can you tell how inhibit-redisplay is related to the original recipe
 > in this bug?  Specifically, at what point is inhibit-redisplay set in
 > that recipe and by which code?

It's all explained here in gui_consider_frame_title:

       /* select-frame calls resize_mini_window, which could resize the
	 mini-window and by that undo the effect of this redisplay
	 cycle wrt minibuffer and echo-area display.  Binding
	 inhibit-redisplay to t makes the call to resize_mini_window a
	 no-op, thus avoiding the adverse side effects.  */

       /* The following was moved before the record_unwind_protect form
	 below to inhibit redisplay also when restoring the selected
	 window/frame: This avoids that resize_mini_window sizes back
	 the minibuffer window of a temporarily selected frame.  See
	 Bug#34317.  */
       specbind (Qinhibit_redisplay, Qt);

Obviously, gui_consider_frame_title should never even try to resize the
mini window in the first place.  The same holds for moving the frame's
focus.

martin