… | |
… | |
620 | { |
620 | { |
621 | selection.beg.row -= count; |
621 | selection.beg.row -= count; |
622 | selection.end.row -= count; |
622 | selection.end.row -= count; |
623 | selection.mark.row -= count; |
623 | selection.mark.row -= count; |
624 | |
624 | |
625 | selection_check (0); |
625 | if (selection.beg.row < -nsaved |
|
|
626 | || selection.end.row < -nsaved |
|
|
627 | || selection.mark.row < -nsaved) |
|
|
628 | { |
|
|
629 | CLEAR_ALL_SELECTION (); |
|
|
630 | selection.op = SELECTION_CLEAR; |
|
|
631 | } |
626 | } |
632 | } |
627 | |
633 | |
628 | for (int i = count; i--; ) |
634 | for (int i = count; i--; ) |
629 | scr_blank_screen_mem (ROW(row2 - i), rstyle); |
635 | scr_blank_screen_mem (ROW(row2 - i), rstyle); |
630 | |
636 | |
… | |
… | |
635 | } |
641 | } |
636 | else |
642 | else |
637 | { |
643 | { |
638 | if (selection.op && current_screen == selection.screen) |
644 | if (selection.op && current_screen == selection.screen) |
639 | { |
645 | { |
640 | int i = selection.beg.row; |
646 | if ((selection.beg.row < row1 && selection.end.row > row1) |
641 | int j = selection.end.row; |
647 | || (selection.beg.row < row2 && selection.end.row > row2) |
642 | |
|
|
643 | if ((i < row1 && j > row1) |
|
|
644 | || (i < row2 && j > row2) |
|
|
645 | || (i - count < row1 && i >= row1) |
648 | || (selection.beg.row - count < row1 && selection.beg.row >= row1) |
646 | || (i - count > row2 && i <= row2) |
649 | || (selection.beg.row - count > row2 && selection.beg.row <= row2) |
647 | || (j - count < row1 && j >= row1) |
650 | || (selection.end.row - count < row1 && selection.end.row >= row1) |
648 | || (j - count > row2 && j <= row2)) |
651 | || (selection.end.row - count > row2 && selection.end.row <= row2)) |
649 | { |
652 | { |
650 | CLEAR_ALL_SELECTION (); |
653 | CLEAR_ALL_SELECTION (); |
651 | selection.op = SELECTION_CLEAR; /* XXX: too aggressive? */ |
654 | selection.op = SELECTION_CLEAR; |
652 | } |
655 | } |
653 | else if (j >= row1 && j <= row2) |
656 | else if (selection.end.row >= row1 && selection.end.row <= row2) |
654 | { |
657 | { |
655 | /* move selected region too */ |
658 | /* move selected region too */ |
656 | selection.beg.row -= count; |
659 | selection.beg.row -= count; |
657 | selection.end.row -= count; |
660 | selection.end.row -= count; |
658 | selection.mark.row -= count; |
661 | selection.mark.row -= count; |