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: martin rudalics
Subject: Re: 23.0.60; Resizing may delete windows
Date: Sun, 20 Apr 2008 14:23:50 +0200
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

> 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.






reply via email to

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