emacs-devel
[Top][All Lists]
Advanced

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

Re: moving window handling into lisp


From: martin rudalics
Subject: Re: moving window handling into lisp
Date: Fri, 21 Aug 2009 14:40:03 +0200
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)

>>> The algorithm computes level by level in the second pass (ie on its
>>> way down) how the windows should be sized. So you have the sizes for
>>> all windows on that level at once.
>> I still don't understand what a "level" is.
>
> All children to a window are on the same level.

So you want a routine to set the sizes of all children of a window?
What would you want to pass to that routine?  A list?

> Do I understand you right, do you say: These should set the size
> without any checking.

The new size of one window.  Applying the new sizes of all windows is
done transactionally, all at once (or none at all if there's a failure).

> You can make a lisp copy of the configuration. This copy should
> contain just the info needed to compute the new sizes. If you want the
> sizes after deletion then just do not include the window you want to
> delete in the copy.

And who does delete the window _and_ resize the remaining ones?

> I guessed there must be some pointer (in a general sense) for each
> frame to the root window. I do not know the actual implementation, but
> I just glanced at it. Unfortunately it takes some time for me to read
> C so I guess a little. I can see there is a Lisp_Object called
> root_window in struct frame. This is the pointer I am talking about.
>
> My question (and suggestion) to you is this: Would it be possible to
> temporarily replace the frames root_window with a new window when the
> frame size gets so small that the window configuration does not fit?
> Whether this is easy (or perhaps even possible) is of course dependent
> on the details in this implementation.
>
> It depends on for example on how drawing of windows are done. Is
> drawing of a frame something that starts from the frame and then goes
> down to look at the windows? Or does the windows live a life on their
> on in this regard? I have assumed the former when I suggested to just
> swap the roor_window pointer. You know more about the implementation
> details and can probably give a better answer.

It would get us into hell's kitchen to just swap some pointers.  The
more so because you want redisplay to happen in between.  What do you
think window-configurations have been invented for?

> You seem to suggest that it would be hard to understand for the user.
> In that case, why?

Because at the time the window-manager shrinks my Emacs frame I usually
want to work with some other application.

>> You do undelete all the time.  It's completely transparent.
>
> How can it be transparent if windows disappears and reappears? I must
> be misunderstanding you somehow...

There might be no redisplay in between.

>>> - size-0 windows in a case like this would be the same.
>> Many applications do that.
>
> Can you explain how you mean?

In many applications (Thunderbird is one of them) I can make subwindows
disappear completely by dragging one of their borders and make them
reappear later by dragging on the border where they disappeared.

martin




reply via email to

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