Browse Source

Add bracketed paste setting selection area

master
cancel 5 years ago
parent
commit
acbda0f5d4
  1. 18
      tui_main.c

18
tui_main.c

@ -2498,7 +2498,8 @@ int main(int argc, char** argv) {
wtimeout(stdscr, 0); wtimeout(stdscr, 0);
int cur_timeout = 0; int cur_timeout = 0;
Usz bracketed_paste_starting_x = 0, bracketed_paste_y = 0, Usz bracketed_paste_starting_x = 0, bracketed_paste_y = 0,
bracketed_paste_x = 0; bracketed_paste_x = 0, bracketed_paste_max_y = 0,
bracketed_paste_max_x = 0;
bool is_in_bracketed_paste = false; bool is_in_bracketed_paste = false;
// Send initial BPM // Send initial BPM
@ -2861,6 +2862,12 @@ int main(int argc, char** argv) {
if (bracketed_paste_sequence_getch_ungetch(stdscr) == if (bracketed_paste_sequence_getch_ungetch(stdscr) ==
Bracketed_paste_sequence_end) { Bracketed_paste_sequence_end) {
is_in_bracketed_paste = false; is_in_bracketed_paste = false;
if (bracketed_paste_max_y > ged_state.ged_cursor.y)
ged_state.ged_cursor.h =
bracketed_paste_max_y - ged_state.ged_cursor.y + 1;
if (bracketed_paste_max_x > ged_state.ged_cursor.x)
ged_state.ged_cursor.w =
bracketed_paste_max_x - ged_state.ged_cursor.x + 1;
ged_state.needs_remarking = true; ged_state.needs_remarking = true;
ged_state.is_draw_dirty = true; ged_state.is_draw_dirty = true;
} }
@ -2883,6 +2890,13 @@ int main(int argc, char** argv) {
gbuffer_poke(ged_state.field.buffer, ged_state.field.height, gbuffer_poke(ged_state.field.buffer, ged_state.field.height,
ged_state.field.width, bracketed_paste_y, ged_state.field.width, bracketed_paste_y,
bracketed_paste_x, cleaned); bracketed_paste_x, cleaned);
// Could move this out one level if we wanted the final selection
// size to reflect even the pasted area which didn't fit on the
// grid.
if (bracketed_paste_y > bracketed_paste_max_y)
bracketed_paste_max_y = bracketed_paste_y;
if (bracketed_paste_x > bracketed_paste_max_x)
bracketed_paste_max_x = bracketed_paste_x;
} }
} }
++bracketed_paste_x; ++bracketed_paste_x;
@ -3030,6 +3044,8 @@ int main(int argc, char** argv) {
bracketed_paste_y = ged_state.ged_cursor.y; bracketed_paste_y = ged_state.ged_cursor.y;
bracketed_paste_x = ged_state.ged_cursor.x; bracketed_paste_x = ged_state.ged_cursor.x;
bracketed_paste_starting_x = bracketed_paste_x; bracketed_paste_starting_x = bracketed_paste_x;
bracketed_paste_max_y = bracketed_paste_y;
bracketed_paste_max_x = bracketed_paste_x;
break; break;
} }
ged_input_cmd(&ged_state, Ged_input_cmd_escape); ged_input_cmd(&ged_state, Ged_input_cmd_escape);

Loading…
Cancel
Save