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.234 by root, Mon Jan 16 08:57:02 2006 UTC vs.
Revision 1.237 by root, Wed Jan 18 11:07:30 2006 UTC

448 scr_release (); 448 scr_release ();
449 prev_nrow = prev_ncol = 0; 449 prev_nrow = prev_ncol = 0;
450 scr_reset (); 450 scr_reset ();
451 451
452 scr_clear (true); 452 scr_clear (true);
453 scr_refresh (SLOW_REFRESH); 453 scr_refresh ();
454} 454}
455 455
456/* ------------------------------------------------------------------------- * 456/* ------------------------------------------------------------------------- *
457 * PROCESS SCREEN COMMANDS * 457 * PROCESS SCREEN COMMANDS *
458 * ------------------------------------------------------------------------- */ 458 * ------------------------------------------------------------------------- */
620 top_row = max (top_row - count, -saveLines); 620 top_row = max (top_row - count, -saveLines);
621 621
622 // scroll everything up 'count' lines 622 // scroll everything up 'count' lines
623 term_start = (term_start + count) % total_rows; 623 term_start = (term_start + count) % total_rows;
624 624
625 // sever bottommost line
625 { 626 {
626 // severe bottommost scrolled line
627 line_t &l = ROW(row2 - count); 627 line_t &l = ROW(row2 - count);
628 l.is_longer (0);
628 l.touch (); 629 l.touch ();
629 l.is_longer (0);
630 } 630 }
631 631
632 // erase newly scorlled-in lines 632 // erase newly scrolled-in lines
633 for (int i = count; i; --i ) 633 for (int i = count; i--; )
634 { 634 {
635 // basically this is a slightly optimized scr_blank_screen_mem 635 // basically this is a slightly optimized scr_blank_screen_mem
636 // it is worth the effort on slower machines 636 // it is worth the effort on slower machines
637 line_t &l = ROW(nrow - i); 637 line_t &l = ROW(nrow - 1 - i);
638 638
639 scr_blank_line (l, 0, l.l, rstyle); 639 scr_blank_line (l, 0, l.l, rstyle);
640 640
641 l.l = 0; 641 l.l = 0;
642 l.f = 0; 642 l.f = 0;
817 CLEAR_SELECTION (); 817 CLEAR_SELECTION ();
818 } 818 }
819 819
820 if (screen.flags & Screen_WrapNext) 820 if (screen.flags & Screen_WrapNext)
821 { 821 {
822 max_it (line->l, ncol);
823 line->is_longer (1);
824
825 scr_do_wrap (); 822 scr_do_wrap ();
826 823
824 line->l = ncol;
825 line->is_longer (1);
826
827 row = screen.cur.row; 827 row = screen.cur.row;
828 line = &ROW(row); /* _must_ refresh */ 828 line = &ROW(row); /* _must_ refresh */
829 } 829 }
830 830
831 // some utf-8 decoders "decode" surrogate characters: let's fix this. 831 // some utf-8 decoders "decode" surrogate characters: let's fix this.
1790 } 1790 }
1791 1791
1792 for (i = rc[PART_BEG].row; i <= rc[PART_END].row; i++) 1792 for (i = rc[PART_BEG].row; i <= rc[PART_END].row; i++)
1793 fill_text (&drawn_buf[i].t[rc[PART_BEG].col], 0, rc[PART_END].col - rc[PART_BEG].col + 1); 1793 fill_text (&drawn_buf[i].t[rc[PART_BEG].col], 0, rc[PART_END].col - rc[PART_BEG].col + 1);
1794 1794
1795 num_scr_allow = 0;
1796
1795 if (refresh) 1797 if (refresh)
1796 scr_refresh (SLOW_REFRESH); 1798 scr_refresh ();
1797} 1799}
1798 1800
1799/* ------------------------------------------------------------------------- */ 1801/* ------------------------------------------------------------------------- */
1800/* 1802/*
1801 * Refresh the entire screen 1803 * Refresh the entire screen
1935 * Refresh the screen 1937 * Refresh the screen
1936 * drawn_text/drawn_rend contain the screen information before the update. 1938 * drawn_text/drawn_rend contain the screen information before the update.
1937 * screen.text/screen.rend contain what the screen will change to. 1939 * screen.text/screen.rend contain what the screen will change to.
1938 */ 1940 */
1939void 1941void
1940rxvt_term::scr_refresh (unsigned char refresh_type) 1942rxvt_term::scr_refresh ()
1941{ 1943{
1942 unsigned char must_clear, /* use draw_string not draw_image_string */ 1944 unsigned char must_clear, /* use draw_string not draw_image_string */
1943 showcursor; /* show the cursor */ 1945 showcursor; /* show the cursor */
1944 int16_t col, row, /* column/row we're processing */ 1946 int16_t col, row, /* column/row we're processing */
1945 ocrow; /* old cursor row */ 1947 ocrow; /* old cursor row */
2069#ifndef NO_SLOW_LINK_SUPPORT 2071#ifndef NO_SLOW_LINK_SUPPORT
2070 /* 2072 /*
2071 * D: CopyArea pass - very useful for slower links 2073 * D: CopyArea pass - very useful for slower links
2072 * This has been deliberately kept simple. 2074 * This has been deliberately kept simple.
2073 */ 2075 */
2074 i = num_scr;
2075 if (!display->is_local 2076 if (!display->is_local
2076 && refresh_type == FAST_REFRESH && num_scr_allow && num_scr 2077 && refresh_type == FAST_REFRESH && num_scr_allow && num_scr
2077 && abs (num_scr) < nrow && !must_clear) 2078 && abs (num_scr) < nrow && !must_clear)
2078 { 2079 {
2079 int16_t nits; 2080 int16_t nits;
2080 int j; 2081 int j;
2081 int len, wlen; 2082 int len, wlen;
2083 dLocal (int, num_scr);
2082 2084
2083 j = nrow; 2085 j = nrow;
2084 wlen = len = -1; 2086 wlen = len = -1;
2085 row = i > 0 ? 0 : j - 1; 2087 row = i > 0 ? 0 : j - 1;
2086 for (; j-- >= 0; row += (i > 0 ? 1 : -1)) 2088 for (; j-- >= 0; row += (i > 0 ? 1 : -1))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines