From 3a4e04be99f31b2fbf4515efd5bc369630dc4006 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 2 Nov 2003 18:53:36 +0000 Subject: Don't unref the print dialogue twice when shown from mozilla. 2003-11-02 Christian Persch * embed/mozilla/PrintingPromptService.cpp: * embed/print-dialog.c: (print_dialog_new), (print_dialog_new_with_parent), (print_dialog_print), (print_cancel_button_cb), (print_preview_button_cb): Don't unref the print dialogue twice when shown from mozilla. --- embed/print-dialog.c | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) (limited to 'embed/print-dialog.c') diff --git a/embed/print-dialog.c b/embed/print-dialog.c index efecf68d5..841804cc1 100755 --- a/embed/print-dialog.c +++ b/embed/print-dialog.c @@ -82,7 +82,8 @@ enum TO_PROP, FROM_PROP, COLOR_PROP, - ORIENTATION_PROP + ORIENTATION_PROP, + PREVIEW_PROP }; enum @@ -112,6 +113,7 @@ EphyDialogProperty properties [] = { FROM_PROP, "from_spinbutton", NULL, PT_NORMAL, NULL }, { COLOR_PROP, "print_color_radiobutton", CONF_PRINT_COLOR, PT_NORMAL, NULL }, { ORIENTATION_PROP, "orient_p_radiobutton", CONF_PRINT_ORIENTATION, PT_NORMAL, NULL }, + { PREVIEW_PROP, "preview_button", NULL, PT_NORMAL, NULL }, { -1, NULL, NULL } }; @@ -210,8 +212,17 @@ print_dialog_new (EphyEmbed *embed, "embed", embed, NULL)); - if (!embed) dialog->only_collect_info = TRUE; - dialog->ret_info = ret_info; + if (ret_info != NULL) + { + GtkWidget *button; + + dialog->only_collect_info = TRUE; + dialog->ret_info = ret_info; + + button = ephy_dialog_get_control (EPHY_DIALOG (dialog), + PREVIEW_PROP); + gtk_widget_hide (button); + } return EPHY_DIALOG(dialog); } @@ -228,8 +239,17 @@ print_dialog_new_with_parent (GtkWidget *window, "ParentWindow", window, NULL)); - if (!embed) dialog->only_collect_info = TRUE; - dialog->ret_info = ret_info; + if (ret_info != NULL) + { + GtkWidget *button; + + dialog->only_collect_info = TRUE; + dialog->ret_info = ret_info; + + button = ephy_dialog_get_control (EPHY_DIALOG (dialog), + PREVIEW_PROP); + gtk_widget_hide (button); + } return EPHY_DIALOG(dialog); } @@ -373,6 +393,8 @@ print_dialog_print (EphyDialog *dialog) if(EPHY_PRINT_DIALOG(dialog)->only_collect_info && EPHY_PRINT_DIALOG(dialog)->ret_info) { *(EPHY_PRINT_DIALOG(dialog)->ret_info) = info; + + return; } else { @@ -419,6 +441,11 @@ void print_cancel_button_cb (GtkWidget *widget, EphyDialog *dialog) { + if (EPHY_PRINT_DIALOG (dialog)->only_collect_info) + { + return; + } + g_object_unref (G_OBJECT(dialog)); } @@ -437,5 +464,3 @@ print_preview_button_cb (GtkWidget *widget, if(!(EPHY_PRINT_DIALOG(dialog)->only_collect_info)) print_dialog_preview (dialog); } - - -- cgit v1.2.3