emacs-devel
[Top][All Lists]
Advanced

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

RE: Buffer listing in multiple frames/ttys


From: Drew Adams
Subject: RE: Buffer listing in multiple frames/ttys
Date: Tue, 29 Nov 2005 07:36:16 -0800

    > The default ordering is chronological, so, yes, the most recent
    > buffer is always first. The relative order of the other buffers is
    > not changed, however (currently).
    >
    > Your reordering goes beyond that - the change in order is confusing,
    > unless one is thinking in terms of multiple buffers per frame and
    > one knows about the new behavior.
   
    Well, if there is any change in the relative order, then that implies
    that the frames sometimes change what buffer they display.  The
    `buffer-list' frame parameter contains a chronological list of buffers
    that were ever displayed in the frame.  The new code will not change
    the relative order of buffers in *Buffer List* unless this list has
    more than one entry.  But that would imply that the user does use
    multiple buffers per frame, so arguably the new code can be useful.
    How about that! :-)

That's not what I see. I gave explicit instructions - here they are again. One 
buffer per frame, yet your code changes the order, and not just for the first 
buffer listed. Did you try this?  (I'm using a July snapshot of CVS, but I 
doubt that makes a difference here)

 emacs -q

 load your version of buff-menu.el

 (setq pop-up-frames t)

 open several buffers (they will be in separate frames)

 C-x C-b from various buffers

Perhaps there is a bug in the buffer list for each frame - or perhaps the doc 
(Info) is not clear? When I do (frame-parameter (selected-frame) 'buffer-list) 
in the different frames, each is a list of multiple buffers (in spite of 
pop-up-frames forcing one buffer per frame), and they are in different orders.

Just what is the meaning of frame parameter `buffer-list' - in particular, when 
there is only (ever) one buffer per frame? Here is the complete Info 
explanation of `buffer-list':

     A list of buffers that have been selected in this frame, ordered
     most-recently-selected first.

I'm not sure what is meant by a buffer being "selected" in a frame 
(displayed?), but when pop-up-frames = t, there is only one buffer that is 
displayed in a given frame, by default. If you just open new buffers (e.g. `C-x 
4 f', `C-x d', *Help*, *info*, whatever), by default they each open in a new 
frame. Why would a new frame's `buffer-list' parameter list multiple buffers? 
What is the significance of the other buffers in that list? I would expect that 
to be explained in Info (if that is not a bug).

That behavior (bug or intended?) may be behind the reordering of multiple 
buffers (that is, not just moving the current buffer to the top) that is new 
with your change. 

IOW, you were saying that only the current buffer's position is changed in the 
order, but that's not what I see (instructions above). That is likely not your 
fault but a by-product of listing multiple buffers for a one-buffer frame.
   
    I think we have spent too much time on this.  I agree that there is no
    point in having frame-local buffer lists when pop-up-frames is set to
    t, so I propose in that case we continue to use the global
    buffer-list, as before.  However, the frame-local version does have
    important benefits for the "thematic frame" people and when there are
    multiple terminals, so let's keep it enabled when pop-up-frames is not
    set.

That sounds good to me. If people have other opinions, please speak up.
   
    > That means that the new behavior would need to be documented
    > explicitly, or else people will not understand what they see.
   
    I will do that, of course.

Thanks.
   
    > Given that, I can't say I'm annoyed by your change. I was thinking
    > of the (imagined) need to re-sort.
   
    So, should I apply this patch or not? :-)

I'm OK with it, given that the same list will appear, in the same order, if 
pop-up-frames = t.

I'd still like to know about the `buffer-list' frame parameter. At the least, 
I'd say that what I see doesn't jibe with what Info says, or else I'm reading 
that wrong.

Thanks,

  Drew
   
    





reply via email to

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