Subject: bug#5405: select-frame losing current-buffer

From: Uday S Reddy <[email-masked]>
Date: Mon, 18 Jan 2010 15:32:16 +0000

I didn't understand this message entirely, but I can confirm that the
problem arises in interactive use as well.  If you have the focus on a
non-hidden buffer and create a new-frame, then this buffer is
displayed in the new frame.  If it is a "hidden" buffer then it is
ignored and some other buffer is displayed in the new frame.  This can
be confusing and perhaps annoying to the users, but it is probably not
a serious problem during interactive use.

Buf if the same problem occurs inside application code, then it can be
more dangerous because the code might errorneously assume that the
correct buffer is in place and modify it.  The fact that it is a
*special case* means that it might go unnoticed during testing and
faulty application code gets delivered.  

So, I recommend that no special case should be made for "hidden"
buffers.  As Drew has argued cogently, the case for the special case
is weak.

Cheers,
Uday

martin rudalics writes:

>  > The documentation of make-frame says that current-buffer continues to
>  > selected in the new frame.
> 
> The documentation also says that
> 
>    The previously selected frame remains selected.  However, the
>    window system may select the new frame for its own reasons, for
>    instance if the frame appears under the mouse pointer and your
>    setup is for focus to follow the pointer.
> 
> so the current buffer may change (as described below) in some cases.
> 
>  > The documentation of select-frame doesn't
>  > say anything about the matter, but one would normally expect that the
>  > current-buffer should still remain the same.
> 
> The documentation of `select-frame' says
> 
>    Subsequent editing commands apply to its selected window.
> 
> which inherently means that that frame's selected window becomes the
> selected window.  Selecting a window WINDOW means to assure that
> 
>    If WINDOW is not already selected, make WINDOW's buffer current
>    and make WINDOW the frame's selected window.
> 
> Which doesn't mean that the documentation can't be improved ;-)
> 
>  > I presume that the space at the beginning of the buffer name is
>  > a partial cause of this misbehaviour.
> 
> It's not related.
> 
> martin
>