ruler: Replace gdk_draw_drawable calls with Cairo
and get rid of the custom GC
This commit is contained in:
@@ -479,12 +479,6 @@ gtk_ruler_unrealize (GtkWidget *widget)
|
||||
ruler->backing_store = NULL;
|
||||
}
|
||||
|
||||
if (ruler->non_gr_exp_gc)
|
||||
{
|
||||
g_object_unref (ruler->non_gr_exp_gc);
|
||||
ruler->non_gr_exp_gc = NULL;
|
||||
}
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_ruler_parent_class)->unrealize (widget);
|
||||
}
|
||||
|
||||
@@ -558,15 +552,15 @@ gtk_ruler_expose (GtkWidget *widget,
|
||||
if (gtk_widget_is_drawable (widget))
|
||||
{
|
||||
GtkRuler *ruler = GTK_RULER (widget);
|
||||
cairo_t *cr;
|
||||
|
||||
gtk_ruler_draw_ticks (ruler);
|
||||
|
||||
gdk_draw_drawable (widget->window,
|
||||
ruler->non_gr_exp_gc,
|
||||
ruler->backing_store,
|
||||
0, 0, 0, 0,
|
||||
widget->allocation.width,
|
||||
widget->allocation.height);
|
||||
cr = gdk_cairo_create (widget->window);
|
||||
gdk_cairo_set_source_pixmap (cr, ruler->backing_store, 0, 0);
|
||||
gdk_cairo_rectangle (cr, &event->area);
|
||||
cairo_fill (cr);
|
||||
cairo_destroy (cr);
|
||||
|
||||
gtk_ruler_draw_pos (ruler);
|
||||
}
|
||||
@@ -600,12 +594,6 @@ gtk_ruler_make_pixmap (GtkRuler *ruler)
|
||||
|
||||
ruler->xsrc = 0;
|
||||
ruler->ysrc = 0;
|
||||
|
||||
if (!ruler->non_gr_exp_gc)
|
||||
{
|
||||
ruler->non_gr_exp_gc = gdk_gc_new (widget->window);
|
||||
gdk_gc_set_exposures (ruler->non_gr_exp_gc, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -864,12 +852,15 @@ gtk_ruler_real_draw_pos (GtkRuler *ruler)
|
||||
|
||||
/* If a backing store exists, restore the ruler */
|
||||
if (ruler->backing_store)
|
||||
gdk_draw_drawable (widget->window,
|
||||
widget->style->black_gc,
|
||||
ruler->backing_store,
|
||||
ruler->xsrc, ruler->ysrc,
|
||||
ruler->xsrc, ruler->ysrc,
|
||||
bs_width, bs_height);
|
||||
{
|
||||
cairo_t *cr = gdk_cairo_create (widget->window);
|
||||
|
||||
gdk_cairo_set_source_pixmap (cr, ruler->backing_store, 0, 0);
|
||||
cairo_rectangle (cr, ruler->xsrc, ruler->ysrc, bs_width, bs_height);
|
||||
cairo_fill (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
}
|
||||
|
||||
if (private->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user