[gitg: 68/69] Fix path rendering offset issue



commit b50512143b549548e2c5758c0c674325635d3bbc
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Fri Jul 22 23:52:09 2011 +0200

    Fix path rendering offset issue

 gitg/gitg-cell-renderer-path.c |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/gitg/gitg-cell-renderer-path.c b/gitg/gitg-cell-renderer-path.c
index 9f547b1..837cff1 100644
--- a/gitg/gitg-cell-renderer-path.c
+++ b/gitg/gitg-cell-renderer-path.c
@@ -320,10 +320,16 @@ draw_indicator(GitgCellRendererPath *self, cairo_t *context, const GdkRectangle
 static void
 renderer_render(GtkCellRenderer *renderer, cairo_t *cr, GtkWidget *widget, const GdkRectangle *area, const GdkRectangle *cell_area, GtkCellRendererState flags)
 {
-	GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(renderer);
+	GitgCellRendererPath *self;
+	GdkRectangle narea;
+	GdkRectangle ncell_area;
+
+	self = GITG_CELL_RENDERER_PATH (renderer);
 
 	self->priv->last_height = area->height;
 
+	cairo_save (cr);
+
 	gdk_cairo_rectangle (cr, area);
 	cairo_clip(cr);
 
@@ -335,11 +341,23 @@ renderer_render(GtkCellRenderer *renderer, cairo_t *cr, GtkWidget *widget, const
 	/* draw labels */
 	draw_labels(self, widget, cr, area);
 
-	((GdkRectangle *) area)->x += total_width(self, widget);
-	((GdkRectangle *) cell_area)->x += total_width(self, widget);
+	narea = *area;
+	ncell_area = *cell_area;
+
+	narea.x += total_width (self, widget);
+	ncell_area.x += total_width (self, widget);
 
-	if (GTK_CELL_RENDERER_CLASS(parent_class)->render)
-		GTK_CELL_RENDERER_CLASS(parent_class)->render(renderer, cr, widget, area, cell_area, flags);
+	cairo_restore (cr);
+
+	if (GTK_CELL_RENDERER_CLASS (parent_class)->render)
+	{
+		GTK_CELL_RENDERER_CLASS (parent_class)->render (renderer,
+		                                                cr,
+		                                                widget,
+		                                                &narea,
+		                                                &ncell_area,
+		                                                flags);
+	}
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]