summaryrefslogtreecommitdiff
path: root/gtk/gtktextdisplay.c
diff options
context:
space:
mode:
authorAlex Larsson <alexl@redhat.com>2001-09-19 00:49:52 +0000
committerAlexander Larsson <alexl@src.gnome.org>2001-09-19 00:49:52 +0000
commit1a46d3d534698081b67e56e5510f521e45bfcbd1 (patch)
treef673445d694db4b1c804815f99df96f05eec1afc /gtk/gtktextdisplay.c
parent07fd24542186c9d2e30a8b08381cab6285d94725 (diff)
downloadgtk+-1a46d3d534698081b67e56e5510f521e45bfcbd1.tar.gz
Don't draw with GTK_STATE_ACTIVE.
2001-09-18 Alex Larsson <alexl@redhat.com> * gtk/gtkcheckbutton.c: * gtk/gtkradiobutton.c: Don't draw with GTK_STATE_ACTIVE. * gtk/gtkclist.c: * gtk/gtkctree.c: Draw lines between rows with base_gc[GTK_STATE_NORMAL]. * gtk/gtktextdisplay.c: Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and unfocused with base_gc [GTK_STATE_ACTIVE]. * gtk/gtkentry.c: Add select all menu-item. Default cursor color is red. Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and unfocused with base_gc [GTK_STATE_ACTIVE]. * gtk/gtklabel.[ch]: Add keynav + menu to selectable lables. Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and unfocused with base_gc [GTK_STATE_ACTIVE]. * gtk/gtkfilesel.c: Add drag and drop support. * gtk/gtkstyle.c: (This was checked in earlier) New default values for text/base SELECTED and ACTIVE
Diffstat (limited to 'gtk/gtktextdisplay.c')
-rw-r--r--gtk/gtktextdisplay.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/gtk/gtktextdisplay.c b/gtk/gtktextdisplay.c
index d5b5f50185..d605a1ba1d 100644
--- a/gtk/gtktextdisplay.c
+++ b/gtk/gtktextdisplay.c
@@ -250,7 +250,10 @@ render_layout_line (GdkDrawable *drawable,
if (selected)
{
- fg_gc = render_state->widget->style->text_gc[GTK_STATE_SELECTED];
+ if (GTK_WIDGET_HAS_FOCUS (render_state->widget))
+ fg_gc = render_state->widget->style->text_gc[GTK_STATE_SELECTED];
+ else
+ fg_gc = render_state->widget->style->text_gc [GTK_STATE_ACTIVE];
}
else
{
@@ -494,6 +497,8 @@ render_para (GdkDrawable *drawable,
PangoLayoutIter *iter;
PangoRectangle layout_logical;
int screen_width;
+ GdkGC *fg_gc, *bg_gc;
+ gint state;
gboolean first = TRUE;
@@ -508,6 +513,14 @@ render_para (GdkDrawable *drawable,
screen_width = line_display->total_width;
+ if (GTK_WIDGET_HAS_FOCUS (render_state->widget))
+ state = GTK_STATE_SELECTED;
+ else
+ state = GTK_STATE_ACTIVE;
+
+ fg_gc = render_state->widget->style->text_gc [state];
+ bg_gc = render_state->widget->style->base_gc [state];
+
do
{
PangoLayoutLine *line = pango_layout_iter_get_line (iter);
@@ -547,7 +560,7 @@ render_para (GdkDrawable *drawable,
selection_end_index > line->length + byte_offset) /* All selected */
{
gdk_draw_rectangle (drawable,
- render_state->widget->style->base_gc[GTK_STATE_SELECTED],
+ bg_gc,
TRUE,
x + line_display->left_margin,
selection_y,
@@ -577,12 +590,11 @@ render_para (GdkDrawable *drawable,
selection_y,
selection_height,
selection_start_index, selection_end_index);
-
- gdk_gc_set_clip_region (render_state->widget->style->text_gc [GTK_STATE_SELECTED], clip_region);
- gdk_gc_set_clip_region (render_state->widget->style->base_gc [GTK_STATE_SELECTED], clip_region);
+ gdk_gc_set_clip_region (fg_gc, clip_region);
+ gdk_gc_set_clip_region (bg_gc, clip_region);
gdk_draw_rectangle (drawable,
- render_state->widget->style->base_gc[GTK_STATE_SELECTED],
+ bg_gc,
TRUE,
x + PANGO_PIXELS (line_rect.x),
selection_y,
@@ -594,8 +606,8 @@ render_para (GdkDrawable *drawable,
y + PANGO_PIXELS (baseline),
TRUE);
- gdk_gc_set_clip_region (render_state->widget->style->text_gc [GTK_STATE_SELECTED], NULL);
- gdk_gc_set_clip_region (render_state->widget->style->base_gc [GTK_STATE_SELECTED], NULL);
+ gdk_gc_set_clip_region (fg_gc, NULL);
+ gdk_gc_set_clip_region (bg_gc, NULL);
gdk_region_destroy (clip_region);
@@ -605,7 +617,7 @@ render_para (GdkDrawable *drawable,
(line_display->direction == GTK_TEXT_DIR_RTL && selection_end_index > byte_offset + line->length)))
{
gdk_draw_rectangle (drawable,
- render_state->widget->style->base_gc[GTK_STATE_SELECTED],
+ bg_gc,
TRUE,
x + line_display->left_margin,
selection_y,
@@ -625,7 +637,7 @@ render_para (GdkDrawable *drawable,
PANGO_PIXELS (line_rect.x) - PANGO_PIXELS (line_rect.width);
gdk_draw_rectangle (drawable,
- render_state->widget->style->base_gc[GTK_STATE_SELECTED],
+ bg_gc,
TRUE,
x + PANGO_PIXELS (line_rect.x) + PANGO_PIXELS (line_rect.width),
selection_y,