[gtk+/gtk-2-22] ruler: Replace gdk_draw_drawable calls with Cairo
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-22] ruler: Replace gdk_draw_drawable calls with Cairo
- Date: Sat, 7 Aug 2010 13:54:54 +0000 (UTC)
commit fe401cdbb4558aa267d2081be65f5035b2b9f7f4
Author: Benjamin Otte <otte redhat com>
Date: Sat Aug 7 03:36:52 2010 +0200
ruler: Replace gdk_draw_drawable calls with Cairo
and get rid of the custom GC
gtk/gtkruler.c | 39 +++++++++++++++------------------------
1 files changed, 15 insertions(+), 24 deletions(-)
---
diff --git a/gtk/gtkruler.c b/gtk/gtkruler.c
index 5e16daf..36111a4 100644
--- a/gtk/gtkruler.c
+++ b/gtk/gtkruler.c
@@ -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)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]