diff options
author | Matthias Clasen <mclasen@redhat.com> | 2007-04-30 02:18:36 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2007-04-30 02:18:36 +0000 |
commit | b9856ac887a77ce1115158dad7b9b0d18c382316 (patch) | |
tree | 09cb3258f7caebd82de65c4596fb12ed40519eab /gtk/gtkprintoperation.c | |
parent | 177f9aec9c2a7355e78042e892076a8d880d2816 (diff) | |
download | gtk+-b9856ac887a77ce1115158dad7b9b0d18c382316.tar.gz |
Make the emission of ::end-print and ::done consistent for previews.
2007-04-29 Matthias Clasen <mclasen@redhat.com>
Make the emission of ::end-print and ::done consistent
for previews. (#347567, Yevgen Muntyan)
* gtk/gtkprintoperation.c (preview_iface_end_preview): Set
the finished status here.
(preview_end_run): ...and not here.
(print_pages_idle_done): Emit ::done for a cancelled preview.
(print_pages_idle): If a preview has been cancelled, don't
emit ::ready, but emit ::end-print.
tests/print-editor.c: Use ::end-print to undo allocations
from ::begin-print.
svn path=/trunk/; revision=17719
Diffstat (limited to 'gtk/gtkprintoperation.c')
-rw-r--r-- | gtk/gtkprintoperation.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gtk/gtkprintoperation.c b/gtk/gtkprintoperation.c index 77362b4302..ff6a879ca3 100644 --- a/gtk/gtkprintoperation.c +++ b/gtk/gtkprintoperation.c @@ -190,8 +190,9 @@ preview_iface_end_preview (GtkPrintOperationPreview *preview) if (op->priv->end_run) op->priv->end_run (op, op->priv->is_sync, TRUE); - g_signal_emit (op, signals[DONE], 0, - GTK_PRINT_OPERATION_RESULT_APPLY); + _gtk_print_operation_set_status (op, GTK_PRINT_STATUS_FINISHED, NULL); + + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_APPLY); } static gboolean @@ -252,8 +253,6 @@ preview_end_run (GtkPrintOperation *op, { g_free (op->priv->page_ranges); op->priv->page_ranges = NULL; - - _gtk_print_operation_set_status (op, GTK_PRINT_STATUS_FINISHED, NULL); } @@ -1929,7 +1928,7 @@ print_pages_idle_done (gpointer user_data) if (priv->rloop && !data->is_preview) g_main_loop_quit (priv->rloop); - if (!data->is_preview) + if (!data->is_preview || priv->cancelled) g_signal_emit (data->op, signals[DONE], 0, priv->cancelled ? GTK_PRINT_OPERATION_RESULT_CANCEL : @@ -2126,7 +2125,7 @@ print_pages_idle (gpointer user_data) } } - if (data->is_preview) + if (data->is_preview && !priv->cancelled) { done = TRUE; @@ -2147,7 +2146,7 @@ print_pages_idle (gpointer user_data) done = TRUE; } - if (done && !data->is_preview) + if (done && (!data->is_preview || priv->cancelled)) { g_signal_emit (data->op, signals[END_PRINT], 0, priv->print_context); priv->end_run (data->op, priv->is_sync, priv->cancelled); |