Improve cursor positioning after reflow by storing the position as an

offset into the entire history before reflow and restoring it aftewards.
This commit is contained in:
nicm
2019-03-20 19:19:11 +00:00
parent ed962e7612
commit 9ee1a8f701
3 changed files with 79 additions and 72 deletions

8
tmux.h
View File

@ -2088,6 +2088,8 @@ void grid_get_cell(struct grid *, u_int, u_int, struct grid_cell *);
void grid_set_cell(struct grid *, u_int, u_int, const struct grid_cell *);
void grid_set_cells(struct grid *, u_int, u_int, const struct grid_cell *,
const char *, size_t);
struct grid_line *grid_get_line(struct grid *, u_int);
void grid_adjust_lines(struct grid *, u_int);
void grid_clear(struct grid *, u_int, u_int, u_int, u_int, u_int);
void grid_clear_lines(struct grid *, u_int, u_int, u_int);
void grid_move_lines(struct grid *, u_int, u_int, u_int, u_int);
@ -2096,9 +2098,9 @@ char *grid_string_cells(struct grid *, u_int, u_int, u_int,
struct grid_cell **, int, int, int);
void grid_duplicate_lines(struct grid *, u_int, struct grid *, u_int,
u_int);
void grid_reflow(struct grid *, u_int, u_int *);
struct grid_line *grid_get_line(struct grid *, u_int);
void grid_adjust_lines(struct grid *, u_int);
void grid_reflow(struct grid *, u_int);
u_int grid_to_offset(struct grid *, u_int, u_int);
void grid_from_offset(struct grid *, u_int, u_int *, u_int *);
/* grid-view.c */
void grid_view_get_cell(struct grid *, u_int, u_int, struct grid_cell *);