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.178 by root, Tue Dec 20 22:27:49 2005 UTC vs.
Revision 1.179 by root, Tue Dec 20 22:47:14 2005 UTC

1958{ 1958{
1959 unsigned char must_clear, /* use draw_string not draw_image_string */ 1959 unsigned char must_clear, /* use draw_string not draw_image_string */
1960 showcursor; /* show the cursor */ 1960 showcursor; /* show the cursor */
1961 int16_t col, row, /* column/row we're processing */ 1961 int16_t col, row, /* column/row we're processing */
1962 ocrow; /* old cursor row */ 1962 ocrow; /* old cursor row */
1963 int i, /* tmp */ 1963 int i; /* tmp */
1964 row_offset; /* basic offset in screen structure */
1965#ifndef NO_CURSORCOLOR 1964#ifndef NO_CURSORCOLOR
1966 rend_t cc1; /* store colours at cursor position (s) */ 1965 rend_t cc1; /* store colours at cursor position (s) */
1967#endif 1966#endif
1968 rend_t *crp; // cursor rendition pointer 1967 rend_t *crp; // cursor rendition pointer
1969 1968
1975 /* 1974 /*
1976 * A: set up vars 1975 * A: set up vars
1977 */ 1976 */
1978 must_clear = 0; 1977 must_clear = 0;
1979 refresh_count = 0; 1978 refresh_count = 0;
1980
1981 row_offset = term_start - view_start;
1982 1979
1983#if XPM_BACKGROUND 1980#if XPM_BACKGROUND
1984 must_clear |= bgPixmap.pixmap != None; 1981 must_clear |= bgPixmap.pixmap != None;
1985#endif 1982#endif
1986#if TRANSPARENT 1983#if TRANSPARENT
2104 row = i > 0 ? 0 : j - 1; 2101 row = i > 0 ? 0 : j - 1;
2105 for (; j-- >= 0; row += (i > 0 ? 1 : -1)) 2102 for (; j-- >= 0; row += (i > 0 ? 1 : -1))
2106 { 2103 {
2107 if (row + i >= 0 && row + i < nrow && row + i != ocrow) 2104 if (row + i >= 0 && row + i < nrow && row + i != ocrow)
2108 { 2105 {
2109 line_t s = save[(row + row_offset) % total_rows]; 2106 line_t s = ROW(row - view_start);
2110 line_t d = drawn[row]; 2107 line_t d = drawn[row];
2111 line_t d2 = drawn[row + i]; 2108 line_t d2 = drawn[row + i];
2112 2109
2113 for (nits = 0, col = ncol; col--; ) 2110 for (nits = 0, col = ncol; col--; )
2114 if (s.t[col] != d2.t[col] || s.r[col] != d2.r[col]) 2111 if (s.t[col] != d2.t[col] || s.r[col] != d2.r[col])
2152 /* 2149 /*
2153 * E: main pass across every character 2150 * E: main pass across every character
2154 */ 2151 */
2155 for (row = 0; row < nrow; row++) 2152 for (row = 0; row < nrow; row++)
2156 { 2153 {
2157 text_t *stp = save[(row + row_offset) % total_rows].t; 2154 text_t *stp = ROW(row - view_start).t;
2158 rend_t *srp = save[(row + row_offset) % total_rows].r; 2155 rend_t *srp = ROW(row - view_start).r;
2159 text_t *dtp = drawn[row].t; 2156 text_t *dtp = drawn[row].t;
2160 rend_t *drp = drawn[row].r; 2157 rend_t *drp = drawn[row].r;
2161 2158
2162 /* 2159 /*
2163 * E2: OK, now the real pass 2160 * E2: OK, now the real pass

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines