emacs-devel
[Top][All Lists]
Advanced

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

Re: Infrastructural complexity.


From: Thomas Lord
Subject: Re: Infrastructural complexity.
Date: Thu, 16 Jul 2009 15:49:34 -0700

On Fri, 2009-07-17 at 00:14 +0200, Lennart Borgman wrote:

> There is no "protected windows" yet, but ECB tries to implement them.
> It is windows that are not affected by window commands that deletes
> windows, like C-x 1, C-x 0.


If (and it's a moderately sized "if") I understand correctly
what functionality is desired, I think that there is a cleaner
approach:  hack frames, not windows.

How about:

A "frame" is a frame, essentially like today.  Except:

A "framelette" is like a frame, except that it is a child
of a frame.  Every frame has exactly four framelettes, always:
Two framelettes at the top and and bottom of the frame, one
just below where menus go, the other just above where the
minibuffer goes.  Two framelettes at the left and right edges,
bordered above and below by the top and bottom framelettes.

Framelettes can not be created or deleted other than
by making a new frame or killing an old frame.

The window configuration of a framelette can be nil, in 
which case the framelette is not displayed.

The rectangle left in the middle, bounded on all sides by
the four framelettes, is where the windows of the frame
go.  A command like C-x 1 clears just that one rectangle,
at least if invoked from within that rectangle.

If a window in a framelette is selected, then "selected-frame"
gives the framelette, not the parent frame.  

DELETE-FRAME in a framelette does not actually delete the
frame, it only sets its window configuration to nil and
selects a window in the middle of the parent frame.

Trying to hack what I think you are trying to do just
at the window level seems like it will overly complicate
the problem of coming up with a better window configuration
system.  Hacking it at the frame level and keeping it simple
with just the four framelettes seems like you an do all the 
neat IDE GUIish stuff without too badly mucking up long-standing
abstractions.

I would expect the modes most often used in buffers whose
windows live in framelettes to not treat commands like C-x 1
quite normally - but they can do that easily without horking
too badly what such commands normally mean.

-t




> 
> I have no idea what we will call, that is why I gave a pointer to ECB,
> but of course only those that are familiar with ECB will understand
> me. Sorry.
> 
> There was a long discussion of this feature here some time ago. ECB
> uses advice to achieve this now. The solution is surpricingly good,
> but there are some smaller irritating problems with it of course.






reply via email to

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