Parcourir la source

Merge pull request #61 from mjkloeckner/cursor_offset

Fix cursor misaligned: add cursor offset
Alexey Kutepov il y a 2 ans
Parent
commit
8b684c9695
3 fichiers modifiés avec 4 ajouts et 3 suppressions
  1. 1 0
      src/common.h
  2. 2 2
      src/editor.c
  3. 1 1
      src/file_browser.c

+ 1 - 0
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;
 

+ 2 - 2
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,

+ 1 - 1
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]),