commit 8b684c9695dabad3b62167b2040d73689e4fccc1
parent fb33ce6c0c99c0dcbb1e700b3d1b7ee7d41c73ac
Author: Alexey Kutepov <reximkut@gmail.com>
Date: Thu, 16 Feb 2023 15:10:28 +0700
Merge pull request #61 from mjkloeckner/cursor_offset
Fix cursor misaligned: add cursor offset
Diffstat:
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/common.h b/src/common.h
@@ -10,6 +10,7 @@
#define SCREEN_HEIGHT 600
#define FPS 60
#define DELTA_TIME (1.0f / FPS)
+#define CURSOR_OFFSET 0.13f
typedef int Errno;
diff --git a/src/editor.c b/src/editor.c
@@ -235,7 +235,7 @@ void editor_render(SDL_Window *window, Free_Glyph_Atlas *atlas, Simple_Renderer
}
if (select_begin_chr <= select_end_chr) {
- Vec2f select_begin_scr = vec2f(0, -(float)row * FREE_GLYPH_FONT_SIZE);
+ Vec2f select_begin_scr = vec2f(0, -((float)row + CURSOR_OFFSET) * FREE_GLYPH_FONT_SIZE);
free_glyph_atlas_measure_line_sized(
atlas, editor->data.items + line_chr.begin, select_begin_chr - line_chr.begin,
&select_begin_scr);
@@ -288,7 +288,7 @@ void editor_render(SDL_Window *window, Free_Glyph_Atlas *atlas, Simple_Renderer
size_t cursor_row = editor_cursor_row(editor);
Line line = editor->lines.items[cursor_row];
size_t cursor_col = editor->cursor - line.begin;
- cursor_pos.y = -(float) cursor_row * FREE_GLYPH_FONT_SIZE;
+ cursor_pos.y = -((float)cursor_row + CURSOR_OFFSET) * FREE_GLYPH_FONT_SIZE;
cursor_pos.x = free_glyph_atlas_cursor_pos(
atlas,
editor->data.items + line.begin, line.end - line.begin,
diff --git a/src/file_browser.c b/src/file_browser.c
@@ -67,7 +67,7 @@ void fb_render(const File_Browser *fb, SDL_Window *window, Free_Glyph_Atlas *atl
simple_renderer_set_shader(sr, SHADER_FOR_COLOR);
if (fb->cursor < fb->files.count) {
- const Vec2f begin = vec2f(0, -(float)fb->cursor * FREE_GLYPH_FONT_SIZE);
+ const Vec2f begin = vec2f(0, -((float)fb->cursor + CURSOR_OFFSET) * FREE_GLYPH_FONT_SIZE);
Vec2f end = begin;
free_glyph_atlas_measure_line_sized(
atlas, fb->files.items[fb->cursor], strlen(fb->files.items[fb->cursor]),