Re: gtk_widget_queue_resize() forgetting allocation

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

 



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?


Regards, Owen

--- ciaoTJ _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux