Re: gtk_widget_queue_resize() forgetting allocation



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



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