From 90efe6ec025060ea44fc3b888b4745befe410dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 26 Feb 2020 12:51:58 +0100 Subject: [PATCH] render: don't center grid on surface Up until now, we've centered the grid on the main surface. Meaning, we calculated the unusable area, added the user configured padding and then centered the grid. This may look nice at first, but doesn't anymore when you start resizing the window. Resizing the window will cause the top+left margins to change, which makes the text "jump" or "wobble". So, now we fix the grid in the upper left corner defined by the user configured padding (plus CSDs if they aren't positioned outside the main surface). --- render.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/render.c b/render.c index 3920ec90..5706457a 100644 --- a/render.c +++ b/render.c @@ -1225,8 +1225,8 @@ maybe_resize(struct terminal *term, int width, int height, bool force) assert(new_rows >= 1); /* Margins */ - term->margins.left = csd_border + (term->width - csd_x - new_cols * term->cell_width) / 2; - term->margins.top = csd_border + csd_title + (term->height - csd_y - new_rows * term->cell_height) / 2; + term->margins.left = csd_border + pad_x; + term->margins.top = csd_border + csd_title + pad_y; term->margins.right = term->width - new_cols * term->cell_width - term->margins.left; term->margins.bottom = term->height - new_rows * term->cell_height - term->margins.top;