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.447 by sf-exg, Thu Aug 21 15:58:29 2014 UTC vs.
Revision 1.452 by root, Sat Dec 13 09:49:48 2014 UTC

2136 scr_set_char_rend (ROW(screen.cur.row), cur_col, rend); 2136 scr_set_char_rend (ROW(screen.cur.row), cur_col, rend);
2137 } 2137 }
2138 } 2138 }
2139 2139
2140 /* make sure no outline cursor is left around */ 2140 /* make sure no outline cursor is left around */
2141 if (ocrow != -1) 2141 if (ocrow != -1 && ocrow < nrow && oldcursor.col < ncol)
2142 {
2143 if (screen.cur.row - view_start != ocrow
2144 || screen.cur.col != oldcursor.col || !showcursor)
2145 {
2146 if (ocrow < nrow
2147 && oldcursor.col < ncol)
2148 drawn_buf[ocrow].r[oldcursor.col] ^= (RS_RVid | RS_Uline); 2142 drawn_buf[ocrow].r[oldcursor.col] ^= (RS_RVid | RS_Uline);
2149 }
2150 }
2151 2143
2152 // save the current cursor coordinates if the cursor is visible 2144 // save the current cursor coordinates if the cursor is visible
2153 // and either the window is unfocused or the cursor style is 2145 // and either the window is unfocused or the cursor style is
2154 // vertical bar, so as to clear the outline cursor in the next 2146 // vertical bar, so as to clear the outline cursor in the next
2155 // refresh if the cursor moves or becomes invisible 2147 // refresh if the cursor moves or becomes invisible
2248 int ypixel = (int)Row2Pixel (row); 2240 int ypixel = (int)Row2Pixel (row);
2249 2241
2250 for (col = 0; col < ncol; col++) 2242 for (col = 0; col < ncol; col++)
2251 { 2243 {
2252 /* compare new text with old - if exactly the same then continue */ 2244 /* compare new text with old - if exactly the same then continue */
2253 if (stp[col] == dtp[col] /* Must match characters to skip. */ 2245 if (stp[col] == dtp[col] && RS_SAME (srp[col], drp[col]))
2254 && (RS_SAME (srp[col], drp[col]) /* Either rendition the same or */
2255 || (stp[col] == ' ' /* space w/ no background change */
2256 && GET_BGATTR (srp[col]) == GET_BGATTR (drp[col]))))
2257 continue; 2246 continue;
2258 2247
2259 // redraw one or more characters 2248 // redraw one or more characters
2260 2249
2261 // seek to the beginning of wide characters 2250 // seek to the beginning of wide characters
2554 XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); 2543 XSetWindowBackground (dpy, vt, pix_colors[Color_bg]);
2555 } 2544 }
2556 2545
2557 XClearWindow (dpy, parent); 2546 XClearWindow (dpy, parent);
2558 2547
2559 if (scrollBar.win) 2548 if (scrollBar.state && scrollBar.win)
2560 { 2549 {
2561 if (transparent) 2550 if (transparent)
2562 XSetWindowBackgroundPixmap (dpy, scrollBar.win, ParentRelative); 2551 XSetWindowBackgroundPixmap (dpy, scrollBar.win, ParentRelative);
2563 else 2552 else
2564 XSetWindowBackground (dpy, scrollBar.win, pix_colors[scrollBar.color ()]); 2553 XSetWindowBackground (dpy, scrollBar.win, pix_colors[scrollBar.color ()]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines