2007/8/17 James Wright <
address@hidden>:
Hi everyone,
I've noticed a bug where the "remove" command can cause pixels to
"leak" (ie, they are not assigned to any frame). It's pretty easy to
reproduce:
1. Split your desktop into a whole bunch of vertical frames by
repeatedly invoking the "vsplit" command -- 9 frames is enough.
2. Remove all but 2 or 3 of them by invoking the "remove" command repeatedly.
3. Invoke the "fselect" command to view the borders of the frames
You should see that the bottom-most frame ends well short of the
bottom of the desktop. The rest of the screen real-estate has been
lost; ie, it's not part of any frame.
The problem stems from the fact that the `expand-tree' function uses
`truncate' when it's calculating the new pixel-sizes for each frame
(since obviously no frame can have a non-integer size). However, just
like in Superman III, those rounded-off pixels start to add up.
I've attached a patch that I believe fixes the problem. (It keeps
track of the remainder and spreads it out among the frames).
Thanks James! I've put it in the git repo.
-Shawn