ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/screen.C
(Generate patch)

Comparing rxvt-unicode/src/screen.C (file contents):
Revision 1.193 by root, Thu Dec 22 19:39:29 2005 UTC vs.
Revision 1.194 by root, Mon Dec 26 21:30:04 2005 UTC

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;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines