Date:  Mon Nov 17 21:59:38 PST 1997
Patch: gtk-dairiki-971117-2.patch

Here is yet another patch for gtkaspectframe.c.

Minor tweak.

This modifies the sub-widget size computation algorithm so that
it rounds computed dimensions to the nearest integer, rather than
truncating.

This may seem like a picky detail, but it is important in the case
that you want to auto-shrink-wrap your top level window around the
aspect-ratio-controlled frame.  Without the patch, a nearly-infinite
loop sometimes occurs:

   1. Top-level window is resized (or mapped).
   2. Aspect_frame computes some allocation (x,y) for it's subwidget.
   3. We set_usize(x,y) on our subwidget -- this triggers a
      resize of the top-level window.
   4. On the second-lap of resizing, the aspect_frame get's allocated
      exactly what it needs to fit the (x by y) sub-widget --- so far
      so good.
      But because of the truncation, it computes the size for the
      sub-widget to by (x, y-1) (say...).
   5. So we set_usize(x,y-1) on our subwidget, triggerint a third lap
      of resizes --- the next time our subwidget often gets allocated
      a size of (x-1,y-1).  This leads more laps: (x-1,y-2), (x-2,y-2),
      This can go on for a while while you watch your flashing window
      gradually shrink one pixel at a time.

With the rounding patch, this loop is guaranteed to terminate
at the third round of resizing --- usually it terminates on the second
round.

[ The patches are on gtk+-971109 + gtk-dairiki-971117-0.patch.
  I.e. you probably should apply gtk-dairiki-971117-0 before this one. ]

Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
