diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2018-11-03 14:40:22 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-11-11 09:54:03 +0100 |
commit | 520ec3dbfd208c99f9b184ab0a4baeab9a93b556 (patch) | |
tree | a2322de3b3b5bde4eb9ba5157818d537c86db85f /src/nvim/ugrid.h | |
parent | f8639dc99cb085432b14da086af316176152bc1f (diff) | |
download | rneovim-520ec3dbfd208c99f9b184ab0a4baeab9a93b556.tar.gz rneovim-520ec3dbfd208c99f9b184ab0a4baeab9a93b556.tar.bz2 rneovim-520ec3dbfd208c99f9b184ab0a4baeab9a93b556.zip |
UI/TUI: improvements and cleanups for scrolling and clearing
- TUI: _never_ rely on BCE for implicit clearing, only explicit commands.
- TUI: use unibi_erase_chars when possible.
- TUI: use end-exclusive ranges for invalid and cleared areas
- screen: scrolling leaves scrolled in aree undefined. This is a
conservative change, a client assuming the old semantics will still
behave correctly.
- screen: factor out vsep handling from line drawing. This is needed
anyway for the multigrid refactor.
- screen: simplifications of win_do_lines
Diffstat (limited to 'src/nvim/ugrid.h')
-rw-r--r-- | src/nvim/ugrid.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/nvim/ugrid.h b/src/nvim/ugrid.h index af78fe91c5..33a706b8c0 100644 --- a/src/nvim/ugrid.h +++ b/src/nvim/ugrid.h @@ -22,15 +22,13 @@ struct ugrid { // -V:UGRID_FOREACH_CELL:625 -#define UGRID_FOREACH_CELL(grid, top, bot, left, right, code) \ +#define UGRID_FOREACH_CELL(grid, row, startcol, endcol, code) \ do { \ - for (int row = top; row <= bot; row++) { \ - UCell *row_cells = (grid)->cells[row]; \ - for (int col = left; col <= right; col++) { \ - UCell *cell = row_cells + col; \ - (void)(cell); \ - code; \ - } \ + UCell *row_cells = (grid)->cells[row]; \ + for (int col = startcol; col < endcol; col++) { \ + UCell *cell = row_cells + col; \ + (void)(cell); \ + code; \ } \ } while (0) |