summaryrefslogtreecommitdiff
path: root/gtk/gtktextdisplay.c
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2011-01-09 18:10:50 +0100
committerPaolo Borelli <pborelli@gnome.org>2011-01-09 21:59:50 +0100
commitab656b3f7a8a6b77e8e8f2526eb2847ec532b8d6 (patch)
treebafc965375a3537c370571bece7958d737bc6f30 /gtk/gtktextdisplay.c
parentfadca187f2cc1f011937c789edd21909f68d0aa1 (diff)
downloadgtk+-ab656b3f7a8a6b77e8e8f2526eb2847ec532b8d6.tar.gz
Obtain the fg color from the renderer
prepare_run must have been called before draw_shape, so we can avoid fiddling the the (deprecated) style and state and just use the color alredy set on the renderer. https://bugzilla.gnome.org/show_bug.cgi?id=639079
Diffstat (limited to 'gtk/gtktextdisplay.c')
-rw-r--r--gtk/gtktextdisplay.c28
1 files changed, 6 insertions, 22 deletions
diff --git a/gtk/gtktextdisplay.c b/gtk/gtktextdisplay.c
index 782ee14bb1..3d33642b40 100644
--- a/gtk/gtktextdisplay.c
+++ b/gtk/gtktextdisplay.c
@@ -354,21 +354,6 @@ gtk_text_renderer_draw_shape (PangoRenderer *renderer,
int y)
{
GtkTextRenderer *text_renderer = GTK_TEXT_RENDERER (renderer);
- GtkStyle *style;
- GdkColor *fg;
-
- style = gtk_widget_get_style (text_renderer->widget);
- if (text_renderer->state == SELECTED)
- {
- if (gtk_widget_has_focus (text_renderer->widget))
- fg = &style->text[GTK_STATE_SELECTED];
- else
- fg = &style->text[GTK_STATE_SELECTED];
- }
- else if (text_renderer->state == CURSOR && gtk_widget_has_focus (text_renderer->widget))
- fg = &style->base[GTK_STATE_NORMAL];
- else
- fg = &style->text[GTK_STATE_NORMAL];
if (attr->data == NULL)
{
@@ -377,18 +362,17 @@ gtk_text_renderer_draw_shape (PangoRenderer *renderer,
*/
GdkRectangle shape_rect;
cairo_t *cr;
-
+
shape_rect.x = PANGO_PIXELS (x);
shape_rect.y = PANGO_PIXELS (y + attr->logical_rect.y);
shape_rect.width = PANGO_PIXELS (x + attr->logical_rect.width) - shape_rect.x;
shape_rect.height = PANGO_PIXELS (y + attr->logical_rect.y + attr->logical_rect.height) - shape_rect.y;
-
- cr = text_renderer->cr;
- cairo_save (cr);
+ set_color (text_renderer, PANGO_RENDER_PART_FOREGROUND);
+
+ cr = text_renderer->cr;
cairo_set_line_width (cr, 1.0);
- gdk_cairo_set_source_color (cr, fg);
cairo_rectangle (cr,
shape_rect.x + 0.5, shape_rect.y + 0.5,
@@ -403,8 +387,8 @@ gtk_text_renderer_draw_shape (PangoRenderer *renderer,
shape_rect.y + 0.5);
cairo_stroke (cr);
-
- cairo_restore (cr);
+
+ unset_color (text_renderer);
}
else if (GDK_IS_PIXBUF (attr->data))
{