[gtksourceview] gutterrenderer: use current line color for current line



commit 0f8c32f2601bcc46fcf078a58eefb978d16b3152
Author: Christian Hergert <christian hergert me>
Date:   Sat Nov 29 18:07:16 2014 -0800

    gutterrenderer: use current line color for current line

 gtksourceview/gtksourcegutterrenderer.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutterrenderer.c b/gtksourceview/gtksourcegutterrenderer.c
index e6a1318..4c285f6 100644
--- a/gtksourceview/gtksourcegutterrenderer.c
+++ b/gtksourceview/gtksourcegutterrenderer.c
@@ -21,6 +21,7 @@
 
 #include "gtksourcegutterrenderer.h"
 #include "gtksourcegutterrenderer-private.h"
+#include "gtksourcestylescheme.h"
 #include "gtksourceview-typebuiltins.h"
 #include "gtksourceview-i18n.h"
 
@@ -484,6 +485,35 @@ renderer_draw_impl (GtkSourceGutterRenderer      *renderer,
                cairo_fill (cr);
                cairo_restore (cr);
        }
+       else if ((state & GTK_SOURCE_GUTTER_RENDERER_STATE_CURSOR) != 0)
+       {
+               GtkSourceStyleScheme *style_scheme;
+               GtkTextBuffer *buffer;
+               GtkTextView *view;
+               GdkRGBA line_color;
+
+               view = gtk_source_gutter_renderer_get_view (renderer);
+               if (!gtk_source_view_get_highlight_current_line (GTK_SOURCE_VIEW (view)))
+                       return;
+
+               buffer = gtk_text_iter_get_buffer (start);
+               if (!GTK_SOURCE_IS_BUFFER (buffer))
+                       return;
+
+               style_scheme = gtk_source_buffer_get_style_scheme (GTK_SOURCE_BUFFER (buffer));
+               if (!GTK_SOURCE_IS_STYLE_SCHEME (style_scheme))
+                       return;
+
+               if (_gtk_source_style_scheme_get_current_line_color (style_scheme, &line_color))
+               {
+                       cairo_save (cr);
+                       gdk_cairo_rectangle (cr, background_area);
+                       gdk_cairo_set_source_rgba (cr, &line_color);
+                       cairo_fill (cr);
+                       cairo_restore (cr);
+               }
+
+       }
 }
 
 static void


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