summaryrefslogtreecommitdiff
path: root/tests/print-editor.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-09-09 02:12:59 +0200
committerBenjamin Otte <otte@redhat.com>2010-09-26 15:11:41 +0200
commitba21d3e687b316a45b029266fe4ed868df07ab62 (patch)
tree25d099356ac3690a5d37d4339208bb32e1d5dea3 /tests/print-editor.c
parente65b1cfd76a558a08a2f0944a3e1a38311ebfb02 (diff)
downloadgtk+-ba21d3e687b316a45b029266fe4ed868df07ab62.tar.gz
tests: Use draw vfunc in print-editor
Diffstat (limited to 'tests/print-editor.c')
-rw-r--r--tests/print-editor.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/tests/print-editor.c b/tests/print-editor.c
index b8d4bf41b3..fe812ba921 100644
--- a/tests/print-editor.c
+++ b/tests/print-editor.c
@@ -433,6 +433,7 @@ typedef struct
{
GtkPrintOperation *op;
GtkPrintOperationPreview *preview;
+ GtkPrintContext *context;
GtkWidget *spin;
GtkWidget *area;
gint page;
@@ -441,15 +442,26 @@ typedef struct
} PreviewOp;
static gboolean
-preview_expose (GtkWidget *widget,
- GdkEventExpose *event,
- gpointer data)
+preview_draw (GtkWidget *widget,
+ cairo_t *cr,
+ gpointer data)
{
PreviewOp *pop = data;
+ cairo_t *prev_cr;
+ double dpi_x, dpi_y;
- gdk_window_clear (gtk_widget_get_window (pop->area));
+ prev_cr = gtk_print_context_get_cairo_context (pop->context);
+ cairo_reference (prev_cr);
+ dpi_x = gtk_print_context_get_dpi_x (pop->context);
+ dpi_y = gtk_print_context_get_dpi_y (pop->context);
+
+ gtk_print_context_set_cairo_context (pop->context,
+ cr, dpi_x, dpi_y);
gtk_print_operation_preview_render_page (pop->preview,
pop->page - 1);
+ gtk_print_context_set_cairo_context (pop->context,
+ prev_cr, dpi_x, dpi_y);
+ cairo_destroy (prev_cr);
return TRUE;
}
@@ -467,8 +479,8 @@ preview_ready (GtkPrintOperationPreview *preview,
gtk_spin_button_set_range (GTK_SPIN_BUTTON (pop->spin),
1.0, n_pages);
- g_signal_connect (pop->area, "expose_event",
- G_CALLBACK (preview_expose),
+ g_signal_connect (pop->area, "draw",
+ G_CALLBACK (preview_draw),
pop);
gtk_widget_queue_draw (pop->area);
@@ -569,18 +581,16 @@ preview_cb (GtkPrintOperation *op,
gtk_widget_set_size_request (GTK_WIDGET (da), width, height);
gtk_box_pack_start (GTK_BOX (vbox), da, TRUE, TRUE, 0);
- gtk_widget_set_double_buffered (da, FALSE);
-
gtk_widget_realize (da);
cr = gdk_cairo_create (gtk_widget_get_window (da));
-
/* TODO: What dpi to use here? This will be used for pagination.. */
gtk_print_context_set_cairo_context (context, cr, 72, 72);
cairo_destroy (cr);
pop->op = g_object_ref (op);
pop->preview = preview;
+ pop->context = context;
pop->spin = page;
pop->area = da;
pop->page = 1;