On Tue, 2004-10-05 at 21:10 +0200, Tim Janik wrote: > On Tue, 5 Oct 2004, Owen Taylor wrote: > > > The way I'd think of this is that calling gtk_widget_size_request() > > sets the REQUEST_NEEDED flag, and we have a set of invariants: > > > > 1) If REQUEST_NEEDED is set on a widget, REQUEST_NEEDED is set on > > all parents up to the resize container > > > > 2) If REQUEST_NEEDED is set on the resize container, the resize > > container has an idle queued on it. > > > > 3) If REQUEST_NEEDED is set on a widget, ALLOC_NEEDED will be > > set on a widget. > > > > With the idle sizer behavior of calling request() than allocate() > > on the toplevel, I think this gives the correct behavior that > > queue_resize(widget) ensures ::request followed by ::allocate on > > the widget. > > > > As far as I can see, calls to gtk_widget_size_request() during > > size_allocate() still will handle 1) and 2) fine. The only problem > > comes with 3), which my patch should fix up. > > ok, i tried hard, but after my initial example fell apart (idle sizer > without size-request as discussed on irc), i can't come up with a scenrio > to break the invariants with your patch at the moment. and since your > patch does indeed fix my resizing bug, i gave you the benfit of a > doubt and applied your patch. > > you agree on merging it down to 2.4? Yes, I think it's a pretty safe change. Regards, Owen
Attachment:
signature.asc
Description: This is a digitally signed message part