[gnome-builder] line-changes: steal the xpad for overdrawing the deletion arrow



commit a09dc414c71047ac2467f56456545fb52cb4ca25
Author: Christian Hergert <chergert redhat com>
Date:   Tue Feb 16 19:25:12 2016 -0800

    line-changes: steal the xpad for overdrawing the deletion arrow
    
    This gives more of the style we are after, when juxtapose changed/added
    lines.

 libide/ide-line-change-gutter-renderer.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-line-change-gutter-renderer.c b/libide/ide-line-change-gutter-renderer.c
index 63a8658..47a429e 100644
--- a/libide/ide-line-change-gutter-renderer.c
+++ b/libide/ide-line-change-gutter-renderer.c
@@ -241,12 +241,14 @@ ide_line_change_gutter_renderer_draw (GtkSourceGutterRenderer      *renderer,
                                       GtkSourceGutterRendererState  state)
 {
   IdeLineChangeGutterRenderer *self = (IdeLineChangeGutterRenderer *)renderer;
+  GdkRectangle cell_area_copy;
   GtkTextBuffer *buffer;
   GdkRGBA *rgba = NULL;
   IdeBufferLineFlags flags;
   IdeBufferLineFlags prev_flags = 0;
   IdeBufferLineFlags next_flags;
   guint lineno;
+  gint xpad;
 
   g_return_if_fail (IDE_IS_LINE_CHANGE_GUTTER_RENDERER (self));
   g_return_if_fail (cr);
@@ -286,6 +288,14 @@ ide_line_change_gutter_renderer_draw (GtkSourceGutterRenderer      *renderer,
     return;
 
   /*
+   * If we have xpad, we want to draw over it. So we'll just mutate
+   * the cell_area here.
+   */
+  g_object_get (self, "xpad", &xpad, NULL);
+  cell_area_copy = *cell_area;
+  cell_area->x += xpad;
+
+  /*
    * If the next line is a deletion, but we were not a deletion, then
    * draw our half the deletion mark.
    */
@@ -366,6 +376,8 @@ ide_line_change_gutter_renderer_draw (GtkSourceGutterRenderer      *renderer,
 
       cairo_fill (cr);
     }
+
+  *cell_area = cell_area_copy;
 }
 
 static void


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