From b76d1965698d6c520b0b3c8733fa620d0eb193e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 1 Sep 2020 08:01:48 +0200 Subject: [PATCH] =?UTF-8?q?render:=20=E2=80=99redraw=5Fmargins=E2=80=99=20?= =?UTF-8?q?is=20now=20a=20parameter=20to=20grid=5Frender()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit render_refresh_margins() now passes ’true’ here, instead of re-setting term->render.last_buf to NULL. --- render.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/render.c b/render.c index 7910b0c5..08caabc7 100644 --- a/render.c +++ b/render.c @@ -1535,7 +1535,7 @@ static const struct wl_callback_listener frame_listener = { }; static void -grid_render(struct terminal *term) +grid_render(struct terminal *term, bool redraw_margins) { if (term->is_shutting_down) return; @@ -1554,14 +1554,16 @@ grid_render(struct terminal *term) /* If we resized the window, or is flashing, or just stopped flashing */ if (term->render.last_buf != buf || term->flash.active || term->render.was_flashing || - term->is_searching != term->render.was_searching) + term->is_searching != term->render.was_searching || + redraw_margins) { if (term->render.last_buf != NULL && term->render.last_buf->width == buf->width && term->render.last_buf->height == buf->height && !term->flash.active && !term->render.was_flashing && - term->is_searching == term->render.was_searching) + term->is_searching == term->render.was_searching && + !redraw_margins) { static bool has_warned = false; if (!has_warned) { @@ -1955,13 +1957,10 @@ frame_callback(void *data, struct wl_callback *wl_callback, uint32_t callback_da if (search && term->is_searching) render_search_box(term); - if (margins) - term->render.last_buf = NULL; - if ((grid || margins) && (!term->delayed_render_timer.is_armed || csd || search)) { - grid_render(term); + grid_render(term, margins); } } @@ -2285,9 +2284,6 @@ fdm_hook_refresh_pending_terminals(struct fdm *fdm, void *data) term->render.refresh.title = false; if (term->window->frame_callback == NULL) { - if (margins) - term->render.last_buf = NULL; - if (csd && term->window->use_csd == CSD_YES) { quirk_weston_csd_on(term); render_csd(term); @@ -2298,7 +2294,7 @@ fdm_hook_refresh_pending_terminals(struct fdm *fdm, void *data) if (search) render_search_box(term); if (grid || margins) - grid_render(term); + grid_render(term, margins); } else { /* Tells the frame callback to render again */ term->render.pending.grid |= grid;