From 4f9d7c565a13a38d21ac1b0f1fe16c79be3fc0d0 Mon Sep 17 00:00:00 2001 From: Qwerasd Date: Sun, 29 Jun 2025 16:11:55 -0600 Subject: [PATCH] font/sprite: add explicit underline cursor Resolves #7651 - uses cursor thickness rather than underline thickness. --- src/font/sprite.zig | 1 + src/font/sprite/draw/special.zig | 18 ++++++++++++++++++ src/renderer/generic.zig | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/font/sprite.zig b/src/font/sprite.zig index 4be06a918..cf86fa6dd 100644 --- a/src/font/sprite.zig +++ b/src/font/sprite.zig @@ -32,6 +32,7 @@ pub const Sprite = enum(u32) { cursor_rect, cursor_hollow_rect, cursor_bar, + cursor_underline, test { const testing = std.testing; diff --git a/src/font/sprite/draw/special.zig b/src/font/sprite/draw/special.zig index 3d75360e3..e41cac487 100644 --- a/src/font/sprite/draw/special.zig +++ b/src/font/sprite/draw/special.zig @@ -326,3 +326,21 @@ pub fn cursor_bar( .height = @intCast(height), }, .on); } + +pub fn cursor_underline( + cp: u32, + canvas: *font.sprite.Canvas, + width: u32, + height: u32, + metrics: font.Metrics, +) !void { + _ = cp; + _ = height; + + canvas.rect(.{ + .x = 0, + .y = @intCast(metrics.underline_position), + .width = @intCast(width), + .height = @intCast(metrics.cursor_thickness), + }, .on); +} diff --git a/src/renderer/generic.zig b/src/renderer/generic.zig index fba577231..0e97808af 100644 --- a/src/renderer/generic.zig +++ b/src/renderer/generic.zig @@ -3098,7 +3098,7 @@ pub fn Renderer(comptime GraphicsAPI: type) type { .block => .cursor_rect, .block_hollow => .cursor_hollow_rect, .bar => .cursor_bar, - .underline => .underline, + .underline => .cursor_underline, .lock => unreachable, }; -- 2.51.2