mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-14 05:33:59 -04:00
grid: reflow: caller may now pass a list of coordinates that should be translated
This commit is contained in:
parent
e5521ff79a
commit
ef52ed8a10
3 changed files with 11 additions and 4 deletions
7
grid.c
7
grid.c
|
|
@ -55,7 +55,9 @@ grid_row_free(struct row *row)
|
||||||
|
|
||||||
void
|
void
|
||||||
grid_reflow(struct grid *grid, int new_rows, int new_cols,
|
grid_reflow(struct grid *grid, int new_rows, int new_cols,
|
||||||
int old_screen_rows, int new_screen_rows)
|
int old_screen_rows, int new_screen_rows,
|
||||||
|
size_t tracking_points_count,
|
||||||
|
struct coord *_tracking_points[static tracking_points_count])
|
||||||
{
|
{
|
||||||
struct row *const *old_grid = grid->rows;
|
struct row *const *old_grid = grid->rows;
|
||||||
const int old_rows = grid->num_rows;
|
const int old_rows = grid->num_rows;
|
||||||
|
|
@ -90,6 +92,9 @@ grid_reflow(struct grid *grid, int new_rows, int new_cols,
|
||||||
tll_push_back(tracking_points, &cursor);
|
tll_push_back(tracking_points, &cursor);
|
||||||
tll_push_back(tracking_points, &saved_cursor);
|
tll_push_back(tracking_points, &saved_cursor);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < tracking_points_count; i++)
|
||||||
|
tll_push_back(tracking_points, _tracking_points[i]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Walk the old grid
|
* Walk the old grid
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
4
grid.h
4
grid.h
|
|
@ -8,7 +8,9 @@ struct row *grid_row_alloc(int cols, bool initialize);
|
||||||
void grid_row_free(struct row *row);
|
void grid_row_free(struct row *row);
|
||||||
void grid_reflow(
|
void grid_reflow(
|
||||||
struct grid *grid, int new_rows, int new_cols,
|
struct grid *grid, int new_rows, int new_cols,
|
||||||
int old_screen_rows, int new_screen_rows);
|
int old_screen_rows, int new_screen_rows,
|
||||||
|
size_t tracking_points_count,
|
||||||
|
struct coord *tracking_points[static tracking_points_count]);
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
grid_row_absolute(const struct grid *grid, int row_no)
|
grid_row_absolute(const struct grid *grid, int row_no)
|
||||||
|
|
|
||||||
4
render.c
4
render.c
|
|
@ -1754,8 +1754,8 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reflow grids */
|
/* Reflow grids */
|
||||||
grid_reflow(&term->normal, new_normal_grid_rows, new_cols, old_rows, new_rows);
|
grid_reflow(&term->normal, new_normal_grid_rows, new_cols, old_rows, new_rows, 0, NULL);
|
||||||
grid_reflow(&term->alt, new_alt_grid_rows, new_cols, old_rows, new_rows);
|
grid_reflow(&term->alt, new_alt_grid_rows, new_cols, old_rows, new_rows, 0, NULL);
|
||||||
|
|
||||||
/* Reset tab stops */
|
/* Reset tab stops */
|
||||||
tll_free(term->tab_stops);
|
tll_free(term->tab_stops);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue