aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ugrid.h
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2018-11-03 14:40:22 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2018-11-11 09:54:03 +0100
commit520ec3dbfd208c99f9b184ab0a4baeab9a93b556 (patch)
treea2322de3b3b5bde4eb9ba5157818d537c86db85f /src/nvim/ugrid.h
parentf8639dc99cb085432b14da086af316176152bc1f (diff)
downloadrneovim-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.h14
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)