diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-02-02 13:21:42 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-03-31 23:30:20 -0400 |
commit | 2154b8e745e17dc7c721f844fa60e82241e75b8a (patch) | |
tree | c689031032057477c56276bbe3d2b55d08abbca5 /gtk/gtkstylecontext.c | |
parent | 9f93464ea49b7d91551a65bbf16e8367bbcb6562 (diff) | |
download | gtk+-2154b8e745e17dc7c721f844fa60e82241e75b8a.tar.gz |
Add a cursor-aspect-ratio setting
Add a setting that controls how thick the text caret is drawn.
The default value is 0.04.
Diffstat (limited to 'gtk/gtkstylecontext.c')
-rw-r--r-- | gtk/gtkstylecontext.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 5d9d321f94..c885841799 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -1084,6 +1084,7 @@ draw_insertion_cursor (GtkStyleContext *context, gdouble x, gdouble y, gdouble height, + float aspect_ratio, gboolean is_primary, PangoDirection direction, gboolean draw_arrow) @@ -1099,7 +1100,7 @@ draw_insertion_cursor (GtkStyleContext *context, _gtk_style_context_get_cursor_color (context, &primary_color, &secondary_color); gdk_cairo_set_source_rgba (cr, is_primary ? &primary_color : &secondary_color); - stem_width = height * CURSOR_ASPECT_RATIO + 1; + stem_width = height * aspect_ratio + 1; /* put (stem_width % 2) on the proper side of the cursor */ if (direction == PANGO_DIRECTION_LTR) @@ -1146,6 +1147,7 @@ draw_insertion_cursor (GtkStyleContext *context, static void get_insertion_cursor_bounds (gdouble height, + float aspect_ratio, PangoDirection direction, gboolean draw_arrow, graphene_rect_t *bounds) @@ -1153,7 +1155,7 @@ get_insertion_cursor_bounds (gdouble height, gint stem_width; gint offset; - stem_width = height * CURSOR_ASPECT_RATIO + 1; + stem_width = height * aspect_ratio + 1; if (direction == PANGO_DIRECTION_LTR) offset = stem_width / 2; else @@ -1186,6 +1188,7 @@ static void snapshot_insertion_cursor (GtkSnapshot *snapshot, GtkStyleContext *context, gdouble height, + float aspect_ratio, gboolean is_primary, PangoDirection direction, gboolean draw_arrow) @@ -1195,10 +1198,10 @@ snapshot_insertion_cursor (GtkSnapshot *snapshot, cairo_t *cr; graphene_rect_t bounds; - get_insertion_cursor_bounds (height, direction, draw_arrow, &bounds); + get_insertion_cursor_bounds (height, aspect_ratio, direction, draw_arrow, &bounds); cr = gtk_snapshot_append_cairo (snapshot, &bounds); - draw_insertion_cursor (context, cr, 0, 0, height, is_primary, direction, draw_arrow); + draw_insertion_cursor (context, cr, 0, 0, height, aspect_ratio, is_primary, direction, draw_arrow); cairo_destroy (cr); } @@ -1211,7 +1214,7 @@ snapshot_insertion_cursor (GtkSnapshot *snapshot, _gtk_style_context_get_cursor_color (context, &primary_color, &secondary_color); - stem_width = height * CURSOR_ASPECT_RATIO + 1; + stem_width = height * aspect_ratio + 1; /* put (stem_width % 2) on the proper side of the cursor */ if (direction == PANGO_DIRECTION_LTR) @@ -1291,6 +1294,7 @@ gtk_render_insertion_cursor (GtkStyleContext *context, x + PANGO_PIXELS (cursor1->x), y + PANGO_PIXELS (cursor1->y), PANGO_PIXELS (cursor1->height), + 0.04, TRUE, direction, direction2 != PANGO_DIRECTION_NEUTRAL); @@ -1302,6 +1306,7 @@ gtk_render_insertion_cursor (GtkStyleContext *context, x + PANGO_PIXELS (cursor2->x), y + PANGO_PIXELS (cursor2->y), PANGO_PIXELS (cursor2->height), + 0.04, FALSE, direction2, TRUE); @@ -1331,6 +1336,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot, { GtkStyleContextPrivate *priv = gtk_style_context_get_instance_private (context); gboolean split_cursor; + float aspect_ratio; PangoRectangle strong_pos, weak_pos; PangoRectangle *cursor1, *cursor2; PangoDirection keymap_direction; @@ -1343,6 +1349,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot, g_object_get (gtk_settings_get_for_display (priv->display), "gtk-split-cursor", &split_cursor, + "gtk-cursor-aspect-ratio", &aspect_ratio, NULL); keymap_direction = gdk_keymap_get_direction (gdk_display_get_keymap (priv->display)); @@ -1374,6 +1381,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot, snapshot_insertion_cursor (snapshot, context, PANGO_PIXELS (cursor1->height), + aspect_ratio, TRUE, direction, direction2 != PANGO_DIRECTION_NEUTRAL); @@ -1386,6 +1394,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot, snapshot_insertion_cursor (snapshot, context, PANGO_PIXELS (cursor2->height), + aspect_ratio, FALSE, direction2, TRUE); |