Subject: bug#11566: 24.0.97; `read-from-minibuffer': focus to standalone minibuffer frame?

From: Eli Zaretskii <[email-masked]>
Date: Tue, 29 May 2012 18:40:15 +0300

> Date: Tue, 29 May 2012 11:43:00 +0200
> From: martin rudalics <[email-masked]>
> Cc: [email-masked]
> 
>  > > When I run lower-frame function in Emacs frame interactively, Emacs
>  > > frame is brought behind of other application window(s) but has focus.
>  > > Key inputs are passed to lowered frame.  I tested 4 Windows PC, and
>  > > all PCs show the same behavior.
> 
> so Windows OT1H handles key input passed to a frame that is not in the
> foreground

Careful with your terminology: at least on MS-Windows, a "foreground"
frame is the frame that has focus and receives input.  So what you say
cannot happen by definition.

In the scenario you cited above, the frame is lowered (i.e. brought
behind, or "below" in Z-order, the other frames/windows), but it is
still the foreground frame and therefore it still has focus and
receives keyboard input.  So it's unclear to me what exactly is the
problem in the OT1H scenario.

> and OTOH doesn't pass key input to another frame even if
> explicitly asked to do so.

I have just fixed a similar problem in bug #11513.  I suggest that
Drew wait until the corresponding binaries are available, and see
whether this problem is solved as well.

The problem in bug #11513 was that a frame that was already a
foreground frame was not raised.  Maybe something similar happens
here.

>  >>  > Shouldn't [`read-from-minibuffer'] have the responsibility
>  >>  > here to give the minibuffer frame the focus?
>  >>
>  >> Yes.  But the window manager must not intercept it.
>  >
>  > But that's what seems to be happening (intercept or interrupt or some such).
> 
> That's what we have to find out.

I don't think this is what happens here.  To raise a frame, Emacs
sends a message with a private code to itself, so I doubt that the
window manager could intercept or interrupt it, even if it wanted to.

> I don't know anything about `redirect-frame-focus' and can't test it
> reliably here because I'm using special autoraise-frame settings which
> likely interfere with any such focus redirection.

According to my reading, it just highlights the frame that had focus
redirected to it.