GNOME Bugzilla – Bug 653705
GtkAssistant doesn't notice destroyed pages
Last modified: 2011-07-09 21:57:43 UTC
When a page widget is destroyed via gtk_widget_destroy(), GtkAssistant doesn't notice because it's not listening for a "remove" signal from it's internal notebook. Currently the only way to remove a page is by calling gtk_container_remove() on the GtkAssistant itself. This is part of what's causing Evolution's account assistant to malfunction (bug 652958).
Created attachment 190984 [details] [review] Proposed patch This patch adds a "remove" signal handler on the internal notebook widget, which does the work of the remove_page() function. It also changes GtkAssistant's own remove() method to simply call gtk_container_remove() on its notebook widget.
Oops, ignore the Makefile.am hunk in the patch. That was to get past a build failure.
explicitly destroying child widgets without removing them from their containers is not something you are normally expected to do...
but yeah, this is a bit of a problem, due to the way we've muddled up the parent-child relationships here.
Any further thoughts on this? Evolution's account assistant is still busted without this. I could try to work around the problem in Evolution but this seems like the better long-term solution.
Sorry, I forgot. Please commit this, then.
Committed for GTK+ 3.1.9. http://git.gnome.org/browse/gtk+/commit/?id=4d17ff973e8c289bf3186c70f68977356fd6b89e