diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2012-05-06 17:16:50 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2012-05-06 17:16:50 +0000 |
| commit | b66b62629455dc938491cc20fc1d274abe918c89 (patch) | |
| tree | 5feecdc5f1d7122be88d9e55867c620d8baf8ab1 /src/widgets/ruler.cpp | |
| parent | Drop nested cairo_t in ruler (diff) | |
| download | inkscape-b66b62629455dc938491cc20fc1d274abe918c89.tar.gz inkscape-b66b62629455dc938491cc20fc1d274abe918c89.zip | |
Apply upstream changes to tick drawing API in ruler
(bzr r11336)
Diffstat (limited to 'src/widgets/ruler.cpp')
| -rw-r--r-- | src/widgets/ruler.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index edb9f4ef1..2693754fb 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -93,7 +93,8 @@ static gboolean sp_ruler_motion_notify (GtkWidget *widget, static gboolean sp_ruler_expose (GtkWidget *widget, GdkEventExpose *event); static void sp_ruler_make_pixmap (SPRuler *ruler); -static void sp_ruler_real_draw_ticks (SPRuler *ruler); +static void sp_ruler_real_draw_ticks (SPRuler *ruler, + cairo_t *cr); static void sp_ruler_real_draw_pos (SPRuler *ruler); @@ -411,13 +412,21 @@ SPMetric sp_ruler_get_metric(SPRuler *ruler) } -void -sp_ruler_draw_ticks (SPRuler *ruler) +void sp_ruler_draw_ticks(SPRuler *ruler) { - g_return_if_fail (SP_IS_RULER (ruler)); + g_return_if_fail(SP_IS_RULER(ruler)); + SPRulerPrivate *priv = ruler->priv; + +#if GTK_CHECK_VERSION(3,0,0) + cairo_t *cr = cairo_create(priv->backing_store); +#else + cairo_t *cr = gdk_cairo_create(priv->backing_store); +#endif + + if (SP_RULER_GET_CLASS(ruler)->draw_ticks) + SP_RULER_GET_CLASS(ruler)->draw_ticks(ruler, cr); - if (SP_RULER_GET_CLASS (ruler)->draw_ticks) - SP_RULER_GET_CLASS (ruler)->draw_ticks (ruler); + cairo_destroy(cr); } void @@ -738,7 +747,7 @@ static gboolean sp_ruler_motion_notify(GtkWidget *widget, return FALSE; } -static void sp_ruler_real_draw_ticks(SPRuler *ruler) +static void sp_ruler_real_draw_ticks(SPRuler *ruler, cairo_t *cr) { SPRulerPrivate *priv = ruler->priv; gint width = 0; @@ -750,9 +759,6 @@ static void sp_ruler_real_draw_ticks(SPRuler *ruler) g_return_if_fail (ruler != NULL); - if (!gtk_widget_is_drawable (GTK_WIDGET (ruler))) - return; - g_object_get(G_OBJECT(ruler), "orientation", &orientation, NULL); GtkWidget *widget = GTK_WIDGET (ruler); GtkStyle *style = gtk_widget_get_style (widget); @@ -779,7 +785,6 @@ static void sp_ruler_real_draw_ticks(SPRuler *ruler) } #if GTK_CHECK_VERSION(3,0,0) - cairo_t *cr = cairo_create(priv->backing_store); gtk_paint_box(style, cr, GTK_STATE_NORMAL, GTK_SHADOW_NONE, widget, @@ -787,7 +792,6 @@ static void sp_ruler_real_draw_ticks(SPRuler *ruler) 0, 0, allocation.width, allocation.height); #else - cairo_t *cr = gdk_cairo_create(priv->backing_store); gtk_paint_box(style, priv->backing_store, GTK_STATE_NORMAL, GTK_SHADOW_NONE, NULL, widget, orientation == GTK_ORIENTATION_HORIZONTAL ? "hruler" : "vruler", @@ -904,7 +908,6 @@ static void sp_ruler_real_draw_ticks(SPRuler *ruler) cairo_stroke(cr); } } - cairo_destroy(cr); } |
