Author retroj
Recipients dclemente
Date 2011-05-14.19:41:30
An implementation is now ready for beta-testing in the 'buffer-ordering' branch of our main git repo:

Adding buffer moving has deeper implications to the coherency of the UI than one might imagine, and
there was a major problem that needed to be addressed.  It is that we have a certain amount of
infrastructure built around the idea that buffers are primarily ordered by their access time, like in
emacs.  Buffer moving introduces explicitly what tabs only introduced implicitly: that buffers have
spatial relationships to each other.  If buffer moving is not done right, we end up with two
competing and incompatible subsystems for ordering buffers, and it winds up making the UI illogical
and increasingly complex as new users come along with requests for new ways of ordering buffers.

Consider the command 'bury-buffer', which affects the temporal ordering of buffers.  If buffers are
to have an explicit spatial ordering, then bury-buffer must act on this ordering or become
irrelevant.  This means that there must be a _place_ to bury buffers.  The end of the buffer list is
the natural choice, but this conflicts with the default ordering of buffers: that new buffers are
created at the end of the list, in "buried" position. The way out of the conflict is to modify default
buffer ordering:

 * New buffers opened by url or webjump (thus having no "opener" buffer) are created at the front of
   the list instead of the end.

 * New buffers opened by link or other DOM object are created immediately to the right of the buffer
   that contained the link or object, which is called the opener buffer.

The keys M-N and M-P are used to move buffers manually through the spatial buffer list.

The implementation is also done mindful of flexibility for users that want to order buffers
differently.  Configuration points have not yet been added, as this is itself a complex issue needing
careful thought, but adding them to the code as it exists should not be difficult.
Date User Action Args
2011-05-14 19:41:30retrojsetmessageid: <>
2011-05-14 19:41:30retrojsetrecipients: + dclemente
2011-05-14 19:41:30retrojlinkissue151 messages
2011-05-14 19:41:30retrojcreate