mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-11 04:27:49 -05:00
render: coord_is_selected: handle block selections
This commit is contained in:
parent
d706e68280
commit
cb9ae4f6a1
1 changed files with 22 additions and 8 deletions
30
render.c
30
render.c
|
|
@ -350,16 +350,30 @@ coord_is_selected(const struct terminal *term, int col, int row)
|
|||
|
||||
row += term->grid->view;
|
||||
|
||||
if (start->row == end->row) {
|
||||
return row == start->row && col >= start->col && col <= end->col;
|
||||
} else {
|
||||
if (row == start->row)
|
||||
return col >= start->col;
|
||||
else if (row == end->row)
|
||||
return col <= end->col;
|
||||
switch (term->selection.kind) {
|
||||
case SELECTION_NORMAL:
|
||||
if (start->row == end->row) {
|
||||
return row == start->row && col >= start->col && col <= end->col;
|
||||
} else {
|
||||
if (row == start->row)
|
||||
return col >= start->col;
|
||||
else if (row == end->row)
|
||||
return col <= end->col;
|
||||
else
|
||||
return row >= start->row && row <= end->row;
|
||||
}
|
||||
|
||||
case SELECTION_BLOCK:
|
||||
if (start->col <= end->col)
|
||||
return row >= start->row && row <= end->row &&
|
||||
col >= start->col && col <= end->col;
|
||||
else
|
||||
return row >= start->row && row <= end->row;
|
||||
return row >= start->row && row <= end->row &&
|
||||
col <= start->col && col >= end->col;
|
||||
}
|
||||
|
||||
assert(false);
|
||||
return false;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue