diff options
Diffstat (limited to 'src/dged/buffer_view.c')
| -rw-r--r-- | src/dged/buffer_view.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dged/buffer_view.c b/src/dged/buffer_view.c index 9129147..2a58687 100644 --- a/src/dged/buffer_view.c +++ b/src/dged/buffer_view.c @@ -35,6 +35,7 @@ struct buffer_view buffer_view_create(struct buffer *buffer, bool modeline, .modeline = modeline, .line_numbers = line_numbers, .fringe_width = 0, + .needs_render = false, }; return v; @@ -66,14 +67,17 @@ void buffer_view_add(struct buffer_view *view, uint8_t *txt, uint32_t nbytes) { } void buffer_view_goto_beginning(struct buffer_view *view) { + view->needs_render = true; view->dot = (struct location){.line = 0, .col = 0}; } void buffer_view_goto_end(struct buffer_view *view) { + view->needs_render = true; view->dot = buffer_end(view->buffer); } void buffer_view_goto(struct buffer_view *view, struct location to) { + view->needs_render = true; view->dot = buffer_clamp(view->buffer, (int64_t)to.line, (int64_t)to.col); } @@ -423,7 +427,7 @@ static void render_modeline(struct buffer_view *view, bool buffer_view_update(struct buffer_view *view, struct buffer_view_update_params *params) { - bool needs_render = false; + bool needs_render = view->needs_render; struct timer *buffer_update_timer = timer_start("update-windows.buffer-update"); buffer_update(view->buffer); @@ -527,6 +531,7 @@ bool buffer_view_update(struct buffer_view *view, command_list_draw_command_list(params->commands, buf_cmds); timer_stop(render_buffer_timer); + view->needs_render = false; return needs_render; } |
