[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