summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkentry.c4
-rw-r--r--gtk/gtkstyle.c41
-rw-r--r--gtk/gtktextdisplay.c4
-rw-r--r--gtk/gtkwidgetprivate.h2
4 files changed, 24 insertions, 27 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 38dbe9d1a7..a54f821a10 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -5805,7 +5805,7 @@ gtk_entry_draw_cursor (GtkEntry *entry,
}
else /* overwrite_mode */
{
- GdkColor cursor_color;
+ GdkRGBA cursor_color;
GdkRectangle rect;
gint x, y;
@@ -5819,7 +5819,7 @@ gtk_entry_draw_cursor (GtkEntry *entry,
rect.height = PANGO_PIXELS (cursor_rect.height);
_gtk_widget_get_cursor_color (widget, &cursor_color);
- gdk_cairo_set_source_color (cr, &cursor_color);
+ gdk_cairo_set_source_rgba (cr, &cursor_color);
gdk_cairo_rectangle (cr, &rect);
cairo_fill (cr);
diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c
index b9312c85d2..a234a34d23 100644
--- a/gtk/gtkstyle.c
+++ b/gtk/gtkstyle.c
@@ -3974,7 +3974,7 @@ gtk_paint_spinner (GtkStyle *style,
static void
get_cursor_color (GtkStyleContext *context,
gboolean primary,
- GdkColor *color)
+ GdkRGBA *color)
{
GdkColor *style_color;
@@ -3985,36 +3985,33 @@ get_cursor_color (GtkStyleContext *context,
if (style_color)
{
- *color = *style_color;
- gdk_color_free (style_color);
- }
- else if (primary)
- {
- GdkRGBA fg;
+ color->red = style_color->red / 65535;
+ color->green = style_color->green / 65535;
+ color->blue = style_color->blue / 65535;
+ color->alpha = 1;
- gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &fg);
-
- color->red = fg.red * 65535;
- color->green = fg.green * 65535;
- color->blue = fg.blue * 65535;
+ gdk_color_free (style_color);
}
else
{
- GdkRGBA fg;
- GdkRGBA bg;
+ gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, color);
+
+ if (!primary)
+ {
+ GdkRGBA bg;
- gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &fg);
- gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg);
+ gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg);
- color->red = (fg.red + bg.red) * 0.5 * 65535;
- color->green = (fg.green + bg.green) * 0.5 * 65535;
- color->blue = (fg.blue + bg.blue) * 0.5 * 65535;
+ color->red = (color->red + bg.red) * 0.5;
+ color->green = (color->green + bg.green) * 0.5;
+ color->blue = (color->blue + bg.blue) * 0.5;
+ }
}
}
void
_gtk_widget_get_cursor_color (GtkWidget *widget,
- GdkColor *color)
+ GdkRGBA *color)
{
GtkStyleContext *context;
@@ -4053,7 +4050,7 @@ gtk_draw_insertion_cursor (GtkWidget *widget,
gfloat cursor_aspect_ratio;
gint offset;
GtkStyleContext *context;
- GdkColor color;
+ GdkRGBA color;
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (cr != NULL);
@@ -4063,7 +4060,7 @@ gtk_draw_insertion_cursor (GtkWidget *widget,
context = gtk_widget_get_style_context (widget);
get_cursor_color (context, is_primary, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
/* When changing the shape or size of the cursor here,
* propagate the changes to gtktextview.c:text_window_invalidate_cursors().
diff --git a/gtk/gtktextdisplay.c b/gtk/gtktextdisplay.c
index 7af3857d6c..a41f5b881a 100644
--- a/gtk/gtktextdisplay.c
+++ b/gtk/gtktextdisplay.c
@@ -780,7 +780,7 @@ render_para (GtkTextRenderer *text_renderer,
(at_last_line && line_display->insert_index == byte_offset + line->length)))
{
GdkRectangle cursor_rect;
- GdkColor cursor_color;
+ GdkRGBA cursor_color;
cairo_t *cr = text_renderer->cr;
/* we draw text using base color on filled cursor rectangle of cursor color
@@ -797,7 +797,7 @@ render_para (GtkTextRenderer *text_renderer,
gdk_cairo_rectangle (cr, &cursor_rect);
cairo_clip (cr);
- gdk_cairo_set_source_color (cr, &cursor_color);
+ gdk_cairo_set_source_rgba (cr, &cursor_color);
cairo_paint (cr);
/* draw text under the cursor if any */
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 4ba0f66ba1..b98e2c9b24 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -94,7 +94,7 @@ gboolean _gtk_widget_get_translation_to_window (GtkWidget *widget,
int *y);
void _gtk_widget_get_cursor_color (GtkWidget *widget,
- GdkColor *color);
+ GdkRGBA *color);
G_END_DECLS