emacs-devel
[Top][All Lists]
Advanced

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

Re: 23.0.60; Resizing may delete windows


From: Stefan Monnier
Subject: Re: 23.0.60; Resizing may delete windows
Date: Sun, 20 Apr 2008 15:29:48 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

>> It probably wants to delete the window because somewhere it (needlessly)
>> tries to resize it (to a smaller size, probably) and then checks the
>> size and decides to delete.  The problem is right there: not in any of
>> the settings of window-min-height.

> Consider the following stretch from enlarge_window:

>         /* Add delta1 lines or columns to this window, and to the parent,
>            keeping things consistent while not affecting siblings.  */
>         XSETINT (CURSIZE (parent), opht + delta1);
>         (*setsizefun) (window, XINT (*sizep) + delta1, 0);

>         /* Squeeze out delta1 lines or columns from our parent,
>            shriking this window and siblings proportionately.
>            This brings parent back to correct size.
>            Delta1 was calculated so this makes this window the desired size,
>            taking it all out of the siblings.  */
>         (*setsizefun) (parent, opht, 0);

> It calls size_window in the hope that size_window

> (i) does not reduce the height of "this window", and

> (ii) implicitly removes windows that have become "to small".


> Now consider the code for changing the size of a frame: It eventually
> winds up calling something like

>         set_window_height (FRAME_ROOT_WINDOW (f),
>                            (newheight
>                             - 1
>                             - FRAME_TOP_MARGIN (f)),
>                             0);

> in the hope that size_window

> (i) does not delete windows when they become "to small", as long as

> (ii) there's at least one larger window it can steal lines from.

> So it seems we want to eat our cake and have it too.

Yes, fixing the behavior with the current code is problematic.
We probably need to rethink/reimplement the window-resize code to
fix it.


        Stefan




reply via email to

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