Skip to content

Commit 79b5ad5

Browse files
committed
fix visual artefact when selection contained empty rows in non tabular mode
1 parent 5caa314 commit 79b5ad5

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

src/print.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,6 +1078,10 @@ window_fill(int window_identifier,
10781078

10791079
int bytes;
10801080
char *ptr;
1081+
bool is_selected_rows;
1082+
bool is_selected_row;
1083+
bool is_selected_columns;
1084+
bool is_empty_row = *rowstr == '\0';
10811085

10821086
if (is_text)
10831087
nspecwords = parse_line(rowstr, specwords, 30);
@@ -1182,18 +1186,21 @@ window_fill(int window_identifier,
11821186
i = 0;
11831187
saved_pos = srcx;
11841188

1189+
is_selected_rows = is_selectable && scrdesc->selected_first_row != -1;
1190+
is_selected_row = rowno >= scrdesc->selected_first_row + 1 &&
1191+
rowno < scrdesc->selected_first_row + 1 + scrdesc->selected_rows;
1192+
1193+
is_selected_columns = is_selectable && selected_xmin != INT_MIN;
1194+
1195+
/*
1196+
* workaround for empty rows in text mode - because row is
1197+
* empty, the is_in_range is not initialized correcty.
1198+
*/
1199+
is_in_range = is_text && is_empty_row && is_selected_row;
1200+
11851201
/* find length of maxx characters */
11861202
if (*ptr != '\0')
11871203
{
1188-
bool is_selected_rows;
1189-
bool is_selected_row;
1190-
bool is_selected_columns;
1191-
1192-
is_selected_rows = is_selectable && scrdesc->selected_first_row != -1;
1193-
is_selected_row = rowno >= scrdesc->selected_first_row + 1 &&
1194-
rowno < scrdesc->selected_first_row + 1 + scrdesc->selected_rows;
1195-
1196-
is_selected_columns = is_selectable && selected_xmin != INT_MIN;
11971204

11981205
while (i < maxx)
11991206
{

0 commit comments

Comments
 (0)