[Glade-devel] GtkNotebook decrease pages fix.
paolo borelli
pborelli@katamail.com
Fri, 08 Aug 2003 11:01:50 +0200
On Thu, 2003-08-07 at 22:21, Archit Baweja wrote:
> diff -u -r1.28 glade-gtk.c
> --- src/glade-gtk.c 14 Jun 2003 15:53:49 -0000 1.28
> +++ src/glade-gtk.c 6 Aug 2003 22:56:47 -0000
> @@ -282,14 +282,28 @@
> }
> } else {/* new_size < old_size */
> /* The notebook has shrunk. Remove pages */
> + GladeWidget *child_gwidget;
> + GtkWidget *child_widget;
> +
> + /*
> + * Thing to remember is that GtkNotebook starts the
> + * page numbers from 0, not 1 (C-style). So we need to do
> + * old_size-1, where we're referring to "nth" widget.
> + */
> while (old_size > new_size) {
> - /*
> - * This is broken, we should also remove the widgets that
> - * are in the page from the project!
> + /* Get the last widget. */
> + child_widget = gtk_notebook_get_nth_page (notebook, old_size-1);
Maybe it's better to check if child_widget is not NULL?
> + child_gwidget = glade_widget_get_from_gtk_widget (child_widget);
> +
> + /*
> + * If we got it, and its not a placeholder, remove it
> + * from project.
> */
> -#if 0
> - gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), old_size);
> -#endif
> + if (child_gwidget) {
> + glade_project_remove_widget (child_gwidget);
> + }
> +
> + gtk_notebook_remove_page (notebook, old_size-1);
> old_size--;
> }
> }
Other than that, it looks good to me. Thanks Archit!
ciao
paolo