diff options
author | Paolo Borelli <pborelli@gnome.org> | 2011-01-09 18:10:50 +0100 |
---|---|---|
committer | Paolo Borelli <pborelli@gnome.org> | 2011-01-09 21:59:50 +0100 |
commit | ab656b3f7a8a6b77e8e8f2526eb2847ec532b8d6 (patch) | |
tree | bafc965375a3537c370571bece7958d737bc6f30 /gtk/gtktextdisplay.c | |
parent | fadca187f2cc1f011937c789edd21909f68d0aa1 (diff) | |
download | gtk+-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.c | 28 |
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)) { |