From: Salvatore Iovene Date: Sun, 13 Dec 2009 12:55:47 +0000 (+0200) Subject: Recycle the same dialog. X-Git-Tag: 0.0.6~1 X-Git-Url: https://vcs.maemo.org/git/?p=tweakr;a=commitdiff_plain;h=7dcc4155fbb695d65fabcb325fc251ece342f369 Recycle the same dialog. --- diff --git a/modules/tweakr-desktop.c b/modules/tweakr-desktop.c index fd6b27a..b012091 100644 --- a/modules/tweakr-desktop.c +++ b/modules/tweakr-desktop.c @@ -316,36 +316,38 @@ _edit_bookmarks_clicked (GtkButton *button, TweakrDesktopSection *section) GtkWidget *panarea; gint ret; - section->bookmarks_dialog = gtk_dialog_new_with_buttons - (_("Edit bookmark labels"), - GTK_WINDOW (gtk_widget_get_ancestor - (tweakr_section_get_widget - (TWEAKR_SECTION (section)), - GTK_TYPE_WINDOW)), - GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_OK, GTK_RESPONSE_OK, - NULL); - - panarea = hildon_pannable_area_new (); - section->bookmarks_box = gtk_vbox_new (FALSE, 0); - hildon_pannable_area_add_with_viewport - (HILDON_PANNABLE_AREA (panarea), section->bookmarks_box); - g_object_set (G_OBJECT (panarea), "height-request", - MIN (350, g_slist_length (bookmarks) * 70), NULL); - - g_slist_foreach (bookmarks, (GFunc) _add_bookmark, section); - - gtk_box_pack_start - (GTK_BOX (GTK_DIALOG (section->bookmarks_dialog)->vbox), - panarea, TRUE, TRUE, 0); - + if (section->bookmarks_dialog == NULL) + { + section->bookmarks_dialog = gtk_dialog_new_with_buttons + (_("Edit bookmark labels"), + GTK_WINDOW (gtk_widget_get_ancestor + (tweakr_section_get_widget + (TWEAKR_SECTION (section)), + GTK_TYPE_WINDOW)), + GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR, + GTK_STOCK_OK, GTK_RESPONSE_OK, + NULL); + + panarea = hildon_pannable_area_new (); + section->bookmarks_box = gtk_vbox_new (FALSE, 0); + hildon_pannable_area_add_with_viewport + (HILDON_PANNABLE_AREA (panarea), section->bookmarks_box); + g_object_set (G_OBJECT (panarea), "height-request", + MIN (350, g_slist_length (bookmarks) * 70), NULL); + + g_slist_foreach (bookmarks, (GFunc) _add_bookmark, section); + + gtk_box_pack_start + (GTK_BOX (GTK_DIALOG (section->bookmarks_dialog)->vbox), + panarea, TRUE, TRUE, 0); + } gtk_widget_show_all (GTK_DIALOG (section->bookmarks_dialog)->vbox); ret = gtk_dialog_run (GTK_DIALOG (section->bookmarks_dialog)); if (ret == GTK_RESPONSE_OK) { section->save_bookmarks = TRUE; } - gtk_widget_destroy (section->bookmarks_dialog); + gtk_widget_hide (section->bookmarks_dialog); g_slist_foreach (bookmarks, (GFunc) g_free, NULL); g_slist_free (bookmarks);