diff options
Diffstat (limited to 'src/fs/gnunet-fs-gtk-event_handler.c')
-rw-r--r-- | src/fs/gnunet-fs-gtk-event_handler.c | 26 |
1 files 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; | |||
32 | 32 | ||
33 | static struct SearchTab *search_tab_tail; | 33 | static struct SearchTab *search_tab_tail; |
34 | 34 | ||
35 | static struct SearchTab *uri_tab; | ||
36 | |||
35 | struct PublishTab | 37 | struct PublishTab |
36 | { | 38 | { |
37 | 39 | ||
@@ -887,6 +889,8 @@ close_search_tab (struct SearchTab *tab) | |||
887 | g_object_unref (tab->builder); | 889 | g_object_unref (tab->builder); |
888 | GNUNET_free (tab->query_txt); | 890 | GNUNET_free (tab->query_txt); |
889 | GNUNET_CONTAINER_DLL_remove (search_tab_head, search_tab_tail, tab); | 891 | GNUNET_CONTAINER_DLL_remove (search_tab_head, search_tab_tail, tab); |
892 | if (tab == uri_tab) | ||
893 | uri_tab = NULL; | ||
890 | GNUNET_free (tab); | 894 | GNUNET_free (tab); |
891 | } | 895 | } |
892 | 896 | ||
@@ -1336,23 +1340,15 @@ GNUNET_GTK_add_to_uri_tab (GtkTreeIter * iter, struct SearchResult **srp, | |||
1336 | const struct GNUNET_CONTAINER_MetaData *meta, | 1340 | const struct GNUNET_CONTAINER_MetaData *meta, |
1337 | const struct GNUNET_FS_Uri *uri) | 1341 | const struct GNUNET_FS_Uri *uri) |
1338 | { | 1342 | { |
1339 | struct SearchTab *utab; | ||
1340 | struct SearchResult *sr; | 1343 | struct SearchResult *sr; |
1341 | GtkNotebook *notebook; | 1344 | GtkNotebook *notebook; |
1342 | gint page; | 1345 | gint page; |
1343 | 1346 | ||
1344 | utab = search_tab_head; | 1347 | if (uri_tab == NULL) |
1345 | while (utab != NULL) | ||
1346 | { | ||
1347 | if (utab->sc == NULL) | ||
1348 | break; | ||
1349 | utab = utab->next; | ||
1350 | } | ||
1351 | if (utab == NULL) | ||
1352 | { | 1348 | { |
1353 | utab = setup_search (NULL, NULL); | 1349 | uri_tab = setup_search (NULL, NULL); |
1354 | gtk_widget_set_visible (utab->close_button, FALSE); | 1350 | gtk_widget_set_visible (uri_tab->close_button, FALSE); |
1355 | gtk_widget_set_visible (utab->pause_button, FALSE); | 1351 | gtk_widget_set_visible (uri_tab->pause_button, FALSE); |
1356 | } | 1352 | } |
1357 | else | 1353 | else |
1358 | { | 1354 | { |
@@ -1361,17 +1357,17 @@ GNUNET_GTK_add_to_uri_tab (GtkTreeIter * iter, struct SearchResult **srp, | |||
1361 | GTK_NOTEBOOK (GNUNET_FS_GTK_get_main_window_object | 1357 | GTK_NOTEBOOK (GNUNET_FS_GTK_get_main_window_object |
1362 | ("GNUNET_GTK_main_window_notebook")); | 1358 | ("GNUNET_GTK_main_window_notebook")); |
1363 | for (page = 0; page < gtk_notebook_get_n_pages (notebook); page++) | 1359 | for (page = 0; page < gtk_notebook_get_n_pages (notebook); page++) |
1364 | if (utab->frame == gtk_notebook_get_nth_page (notebook, page)) | 1360 | if (uri_tab->frame == gtk_notebook_get_nth_page (notebook, page)) |
1365 | { | 1361 | { |
1366 | gtk_notebook_set_current_page (notebook, page); | 1362 | gtk_notebook_set_current_page (notebook, page); |
1367 | break; | 1363 | break; |
1368 | } | 1364 | } |
1369 | } | 1365 | } |
1370 | sr = GNUNET_GTK_add_search_result (utab, iter, NULL, uri, meta, NULL, 0); | 1366 | sr = GNUNET_GTK_add_search_result (uri_tab, iter, NULL, uri, meta, NULL, 0); |
1371 | 1367 | ||
1372 | if (NULL != srp) | 1368 | if (NULL != srp) |
1373 | *srp = sr; | 1369 | *srp = sr; |
1374 | return utab; | 1370 | return uri_tab; |
1375 | } | 1371 | } |
1376 | 1372 | ||
1377 | 1373 | ||