--- gtksheet.c 27 Nov 2005 08:21:33 -0000 1.8 +++ gtksheet.c 28 Nov 2005 07:13:01 -0000 @@ -6519,10 +6519,21 @@ gtk_widget_show (sheet->sheet_entry); } +/* Finds the last child widget that happens to be of type GtkEntry */ +static void +find_entry(GtkWidget *w, gpointer user_data) +{ + GtkWidget **entry = user_data; + if ( GTK_IS_ENTRY(w)) + { + *entry = w; + } +} + GtkWidget * gtk_sheet_get_entry(GtkSheet *sheet) { GtkWidget *parent; GtkWidget *entry = NULL; @@ -6538,10 +6549,18 @@ parent = GTK_WIDGET(sheet->sheet_entry); if(GTK_IS_TABLE(parent)) children = GTK_TABLE(parent)->children; if(GTK_IS_BOX(parent)) children = GTK_BOX(parent)->children; + + if(GTK_IS_CONTAINER(parent)) + { + gtk_container_forall(GTK_CONTAINER(parent), find_entry, &entry); + + if(GTK_IS_ENTRY(entry)) + return entry; + } if(!children) return NULL; while(children){ if(GTK_IS_TABLE(parent)) {