[gtksourceview/wip/gutter-draw-refactoring: 3/3] gutter: split on_view_draw: apply_style()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/gutter-draw-refactoring: 3/3] gutter: split on_view_draw: apply_style()
- Date: Sun, 23 Nov 2014 11:57:40 +0000 (UTC)
commit acf8f92be5510340f705095b7b2054383c38f999
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Nov 23 12:54:43 2014 +0100
gutter: split on_view_draw: apply_style()
gtksourceview/gtksourcegutter.c | 75 +++++++++++++++++++++++----------------
1 files changed, 44 insertions(+), 31 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutter.c b/gtksourceview/gtksourcegutter.c
index 420c29b..22b5b08 100644
--- a/gtksourceview/gtksourcegutter.c
+++ b/gtksourceview/gtksourcegutter.c
@@ -917,6 +917,49 @@ get_clip_rectangle (GtkSourceGutter *gutter,
return gdk_cairo_get_clip_rectangle (cr, clip);
}
+static void
+apply_style (GtkSourceGutter *gutter,
+ GtkSourceView *view,
+ GtkStyleContext *style_context,
+ cairo_t *cr)
+{
+ const gchar *class;
+ GdkRGBA fg_color;
+
+ switch (gutter->priv->window_type)
+ {
+ case GTK_TEXT_WINDOW_TOP:
+ class = GTK_STYLE_CLASS_TOP;
+ break;
+
+ case GTK_TEXT_WINDOW_RIGHT:
+ class = GTK_STYLE_CLASS_RIGHT;
+ break;
+
+ case GTK_TEXT_WINDOW_BOTTOM:
+ class = GTK_STYLE_CLASS_BOTTOM;
+ break;
+
+ case GTK_TEXT_WINDOW_LEFT:
+ class = GTK_STYLE_CLASS_LEFT;
+ break;
+
+ default:
+ g_return_if_reached ();
+ }
+
+ /* Apply classes ourselves, since we are in connect_after and so they
+ * are not set by gtk.
+ */
+ gtk_style_context_add_class (style_context, class);
+
+ gtk_style_context_get_color (style_context,
+ gtk_widget_get_state_flags (GTK_WIDGET (view)),
+ &fg_color);
+
+ gdk_cairo_set_source_rgba (cr, &fg_color);
+}
+
static gboolean
on_view_draw (GtkSourceView *view,
cairo_t *cr,
@@ -944,8 +987,6 @@ on_view_draw (GtkSourceView *view,
gboolean has_selection;
gint idx;
GtkStyleContext *style_context;
- const gchar *class;
- GdkRGBA fg_color;
if (!get_clip_rectangle (gutter, view, cr, &clip))
{
@@ -1006,36 +1047,8 @@ on_view_draw (GtkSourceView *view,
cell_area.y = background_area.y;
style_context = gtk_widget_get_style_context (GTK_WIDGET (view));
-
gtk_style_context_save (style_context);
-
- switch (gutter->priv->window_type)
- {
- case GTK_TEXT_WINDOW_TOP:
- class = GTK_STYLE_CLASS_TOP;
- break;
- case GTK_TEXT_WINDOW_RIGHT:
- class = GTK_STYLE_CLASS_RIGHT;
- break;
- case GTK_TEXT_WINDOW_BOTTOM:
- class = GTK_STYLE_CLASS_BOTTOM;
- break;
- case GTK_TEXT_WINDOW_LEFT:
- class = GTK_STYLE_CLASS_LEFT;
- break;
- default:
- g_return_val_if_reached (GDK_EVENT_PROPAGATE);
- }
-
- /* Apply classes ourselves, since we are in connect_after and so they
- * are not set by gtk */
- gtk_style_context_add_class (style_context, class);
-
- gtk_style_context_get_color (style_context,
- gtk_widget_get_state_flags (GTK_WIDGET (view)),
- &fg_color);
-
- gdk_cairo_set_source_rgba (cr, &fg_color);
+ apply_style (gutter, view, style_context, cr);
for (item = gutter->priv->renderers, idx = 0;
item != NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]