render: rename term->render.resizing -> term->interactive_resizing

But also, more importantly, logical fixes:

* Stash the number of new scrollback lines the stashed ‘normal’ grid
  should be resized *to*.

There’s also a couple of performance changes here:

* When doing a delayed reflow (tiocswinsz timer), call
  sixel_reflow_grid(term, &term->normal) - there’s no need to reflow
  sixels in the ‘alt’ screen.

* When doing a delayed reflow, free all scroll damage. It’s not
  needed, since we’re damaging the entire window anyway.

* Use minimum size for the temporary ‘normal’ grid (that contains the
  current viewport). We just need it to be large enough to fit the
  current viewport, and be a valid grid row count (power of 2). This
  just so happens to be the current ‘alt’ grid’s row count...
This commit is contained in:
Daniel Eklöf 2022-10-09 16:17:22 +02:00
parent c550d67cd8
commit 298f210ed9
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 45 additions and 34 deletions

View file

@ -595,14 +595,15 @@ struct terminal {
size_t search_glyph_offset;
struct {
struct grid *grid;
int screen_rows;
} resizing;
struct timespec input_time;
} render;
struct {
struct grid *grid; /* Original normal grid, before resize started */
int old_screen_rows; /* term->rows before resize started */
int new_rows; /* New number of scrollback rows */
} interactive_resizing;
struct {
enum {
SIXEL_DECSIXEL, /* DECSIXEL body part ", $, -, ? ... ~ */