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

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

Re: switch-to-buffer-other-frame fails to pop-up window


From: Mark T. Kennedy
Subject: Re: switch-to-buffer-other-frame fails to pop-up window
Date: Thu, 06 Dec 2007 13:43:05 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.0

martin rudalics wrote:
>  > 1) contrast the behavior of 'c-x 5 b' with 'c-x 4 b'.  'c-x 4 b' always 
> forces the creation of two
>  > different windows, even when displaying the same buffer.  'c-x 5 b' does 
> not always force the
>  > creation of two frames.
>
> When you have two windows on the selected frame, w1 is the selected
> window and w2 the other one, w2 shows buffer b, and w1 does not show
> buffer b, C-x 4 b will simply switch to w2.  Thus C-x 4 b and C-x 5 b
> behave very similarly.

but two windows exist already in your "c-x 4 b" scenario.  and if only one 
window
existed, it would be created.  the "other window" invariant is maintained 
regardless
of whether it has to create a new window or just switch to an existing one.

but "c-x 5 b" behaves like "c-x 4 b" in the single-frame, two-window
scenario you described above.  it does *not* cause a second frame to
be created.  it just switches to w2 without creating a new frame.  the
"other frame" invariant is *not* maintained.

>
>  > 2) one might guess that 'switch-to-buffer-other-frame' is essentially a 
> wrapper that
>  > sets 'pop-up-frames' to 't' and then calls display-buffer (and it is).
>  > while the behavior of display-buffer is meticulously documented, the 
> observed
>  > behavior clashes with the documentation for 'pop-up-frames'.  now if it 
> were
>  > called "maybe-pop-up-frames" or "frequently-pop-up-frames", i wouldn't feel
>  > so bad, but... :-).
>
> The documentation of `pop-up-frames' in the Elisp manual appears
> correct:
>
>   -- User Option: pop-up-frames
>       This variable controls whether `display-buffer' makes new frames.
>       If it is non-`nil', `display-buffer' looks for an existing window
>       already displaying the desired buffer, on any visible frame.  If
>       it finds one, it returns that window.  Otherwise it makes a new
>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       frame.  The variables `pop-up-windows' and
>       `split-height-threshold' do not matter if `pop-up-frames' is
>       non-`nil'.
>
> The doc-strings of `pop-up-frames' and `switch-to-buffer-other-frame'
> are misleading.  The former says "*Non-nil means `display-buffer' should
> make a separate frame." but fails to explain the semantics of "should".
> The latter tells "Switch to buffer buffer in another frame." which is
> just silly IMHO.

mea culpa.  i did not think to look in the elisp doc.

>
>  > so i'm requesting (not demanding :-) a change in behavior.
>  >
>  > what use case would clash with a change like this?
>
> I don't know, maybe there is one.  We could try to provide a third value
> for `pop-up-frames': If it's 'force `display-buffer' would _always_ try
> to display the buffer in a new frame regardless of how many times it is
> already displayed.  What do you think?
>
>

that would certainly provide a work-around and make me happy.

but i'm still curious why the intent of pop-up-frames is overridden by
display-buffer.  there has to be a reason lurking somewhere?

/mark

This communication and any attachments may contain confidential/proprietary 
information and is intended for information purposes only. It is not an 
invitation or offer to purchase interests from Diamondback.  Any representation 
to the contrary is unintentional.  This communication is intended only for the 
person(s) to whom it is addressed.  If you are not the intended recipient you 
are hereby notified that you have received this document in error and that any 
review, dissemination, distribution, or copying of this message or any 
attachments is not permitted.  If you have received this in error, please 
notify the sender immediately by e-mail and delete this message.  All e-mails 
sent to or received from this address will be received by Diamondback's company 
e-mail system and is subject to archival and possible review by someone other 
than the recipient.  This notice is automatically appended to each e-mail 
message leaving Diamondback.





reply via email to

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