Re: gtk_widget_show() and the 'size-allocate' signal



On Sat, Mar 03, 2007 at 07:59:10PM -0800, v4r4n wrote:
When I call gtk_widget_show() on a parent of the parent, the child widget's
"size-allocate" signal handler is called before the parent widget's
"size-allocate" signal handler.  This creates a problem because I was
expecting my particular parent to be the one that gives the child its
"size-allocate" signal.

I know GTK normally works from bottom to top, but I thought "size-allocate"
was one of the signals that travels from top to bottom...

It works from top to bottom.  However, the size_allocate()
method (or signal handler if you wish) of the container is run
first and it invokes size allocation of its children.
Your "size-allocate" signal handler is run after it, i.e.
when the recusrive allocation is finished.  Obviously you
receive "size-allocate" in bottom to top order.

If you want to override size_allocate() for containes, I
suggest to subclass.

I'm also having trouble installing all the development source packages I
need to see what exactly is going on (ubuntu).  All I see are a bunch of
function calls from libgtk-x11-2.0.so.0 and no source code.

Packages with debugging information have typically -dbg,
-debug or -debuginfo suffix.

I recommend to also (or even instead) build GLib and Gtk+
with --debug=yes from source and install it to
a *NON-SYSTEM* location as this enables one to use the
*_DEBUG facilities:

  LD_LIBRARY_PATH=$HOME/.../gtk-debug/lib GTK_DEBUG=geometry myapp...

(hm, I wonder how the `thou shalt not touch Gtk+ source'
types do this)

Yeti


--
Whatever.



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