On Fri, Jan 2, 2009 at 2:35 PM, Rodrigo Miguel <rodrm...@gmail.com> wrote:
> Hello all,
>
> I've the code below, so here are just a couple of questions:
>
> 1) I'm curious, if I close the app by clicking the button that calls
> gtk_main_quit, instead of forceing the window to be destroyed, it
> doesn't call my GClosureNotify/GDestroyNotify functions. So, I wrote a
> small code that list all toplevels and then destroy it, so it's
> working pretty well so far, just curious if that's the normal
> behavior.

Thats normal behavior, you have to destroy your widgets if you
want to free the memory (usually thats not important at quit time
though).

> 2) in the line below: "gtk_container_add(GTK_CONTAINER (window),
> button);", if I forget to create a relation between button widget to
> another container, the GClosureNotify/GDestroyNotify will not be
> called too. I know that's a bad programming practice, but it would
> happen in a large program and have a orphan widget. So, is there any
> way to overcome this issue?

Gtk+ is not supposed to work if you forget to use it correctly ;-)

Normally I would couple the signal_connect() and the container_add() in
the same code segment, bottom line is you are responsible for knowing
when to connect/disconnect/block your signal callbacks.
(in the above situation it would be safe, to add the child at a later time,
since you already know the button will not be clicked by a user until
its added to the ui and shown).

Cheers,
                 -Tristan

PS: Consider using GtkBuilder to build your widgets instead of
writing that code by hand ;-)
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to