From 77b4b6331f34791817084ed0e1b8c97815a1e1e7 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 18 Sep 2011 13:55:43 +0000 Subject: fixing uri tab implementation - #1771 --- src/fs/gnunet-fs-gtk-event_handler.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/fs/gnunet-fs-gtk-event_handler.c b/src/fs/gnunet-fs-gtk-event_handler.c index 77508240..2659b0f2 100644 --- a/src/fs/gnunet-fs-gtk-event_handler.c +++ b/src/fs/gnunet-fs-gtk-event_handler.c @@ -32,6 +32,8 @@ static struct SearchTab *search_tab_head; static struct SearchTab *search_tab_tail; +static struct SearchTab *uri_tab; + struct PublishTab { @@ -887,6 +889,8 @@ close_search_tab (struct SearchTab *tab) g_object_unref (tab->builder); GNUNET_free (tab->query_txt); GNUNET_CONTAINER_DLL_remove (search_tab_head, search_tab_tail, tab); + if (tab == uri_tab) + uri_tab = NULL; GNUNET_free (tab); } @@ -1336,23 +1340,15 @@ GNUNET_GTK_add_to_uri_tab (GtkTreeIter * iter, struct SearchResult **srp, const struct GNUNET_CONTAINER_MetaData *meta, const struct GNUNET_FS_Uri *uri) { - struct SearchTab *utab; struct SearchResult *sr; GtkNotebook *notebook; gint page; - utab = search_tab_head; - while (utab != NULL) - { - if (utab->sc == NULL) - break; - utab = utab->next; - } - if (utab == NULL) + if (uri_tab == NULL) { - utab = setup_search (NULL, NULL); - gtk_widget_set_visible (utab->close_button, FALSE); - gtk_widget_set_visible (utab->pause_button, FALSE); + uri_tab = setup_search (NULL, NULL); + gtk_widget_set_visible (uri_tab->close_button, FALSE); + gtk_widget_set_visible (uri_tab->pause_button, FALSE); } else { @@ -1361,17 +1357,17 @@ GNUNET_GTK_add_to_uri_tab (GtkTreeIter * iter, struct SearchResult **srp, GTK_NOTEBOOK (GNUNET_FS_GTK_get_main_window_object ("GNUNET_GTK_main_window_notebook")); for (page = 0; page < gtk_notebook_get_n_pages (notebook); page++) - if (utab->frame == gtk_notebook_get_nth_page (notebook, page)) + if (uri_tab->frame == gtk_notebook_get_nth_page (notebook, page)) { gtk_notebook_set_current_page (notebook, page); break; } } - sr = GNUNET_GTK_add_search_result (utab, iter, NULL, uri, meta, NULL, 0); + sr = GNUNET_GTK_add_search_result (uri_tab, iter, NULL, uri, meta, NULL, 0); if (NULL != srp) *srp = sr; - return utab; + return uri_tab; } -- cgit v1.2.3