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.167 by root, Fri Aug 5 16:42:44 2005 UTC vs.
Revision 1.171 by root, Fri Dec 16 13:05:49 2005 UTC

260 260
261 if (nrow < prev_nrow) 261 if (nrow < prev_nrow)
262 { 262 {
263 /* delete rows */ 263 /* delete rows */
264 k = min (TermWin.nscrolled, prev_nrow - nrow); 264 k = min (TermWin.nscrolled, prev_nrow - nrow);
265 // k = max (0, - ( (nrow - 1) - r->screen.cur.row)); // mmc's http://maruska.dyndns.org/wiki/scrolling-bug //make configurable? //D TODO
265 scr_scroll_text (0, (int)prev_nrow - 1, k, 1); 266 scr_scroll_text (0, (int)prev_nrow - 1, k, 1);
266 267
267 for (p = nrow; p < prev_nrow; p++) 268 for (p = nrow; p < prev_nrow; p++)
268 { 269 {
269 q = p + TermWin.saveLines; 270 q = p + TermWin.saveLines;
441 */ 442 */
442void 443void
443rxvt_term::scr_release () 444rxvt_term::scr_release ()
444{ 445{
445 unsigned int total_rows; 446 unsigned int total_rows;
446 int i;
447 447
448 total_rows = TermWin.nrow + TermWin.saveLines; 448 total_rows = TermWin.nrow + TermWin.saveLines;
449 449
450 delete talloc; talloc = 0; 450 delete talloc; talloc = 0;
451 delete ralloc; ralloc = 0; 451 delete ralloc; ralloc = 0;
778 if (len <= 0) /* sanity */ 778 if (len <= 0) /* sanity */
779 return; 779 return;
780 780
781 unsigned char checksel; 781 unsigned char checksel;
782 unicode_t c; 782 unicode_t c;
783 int i, row, last_col; 783 int row, last_col;
784 text_t *stp; 784 text_t *stp;
785 rend_t *srp; 785 rend_t *srp;
786 const unicode_t *strend = str + len; 786 const unicode_t *strend = str + len;
787 787
788 want_refresh = 1; 788 want_refresh = 1;
2161 2161
2162#if ENABLE_OVERLAY 2162#if ENABLE_OVERLAY
2163 scr_swap_overlay (); 2163 scr_swap_overlay ();
2164#endif 2164#endif
2165 2165
2166 rend_t *drp, *srp; /* drawn-rend-pointer, screen-rend-pointer */
2167 text_t *dtp, *stp; /* drawn-text-pointer, screen-text-pointer */
2168
2169#ifndef NO_SLOW_LINK_SUPPORT 2166#ifndef NO_SLOW_LINK_SUPPORT
2170 /* 2167 /*
2171 * D: CopyArea pass - very useful for slower links 2168 * D: CopyArea pass - very useful for slower links
2172 * This has been deliberately kept simple. 2169 * This has been deliberately kept simple.
2173 */ 2170 */
2308 2305
2309 // sometimes we optimize away the trailing NOCHAR's, add them back 2306 // sometimes we optimize away the trailing NOCHAR's, add them back
2310 while (i && text[count] == NOCHAR) 2307 while (i && text[count] == NOCHAR)
2311 count++, i--; 2308 count++, i--;
2312 2309
2313#if ENABLE_STYLES
2314 // force redraw after "careful" characters to avoid pixel droppings
2315 if (srp[col] & RS_Careful && col < TermWin.ncol - 1 && 0)
2316 drp[col + 1] = ~srp[col + 1];
2317
2318 // include previous careful character(s) if possible, looks nicer (best effort...)
2319 while (text > stp
2320 && srp[text - stp - 1] & RS_Careful
2321 && RS_SAME (rend, srp[text - stp - 1]))
2322 text--, count++, xpixel -= TermWin.fwidth;
2323#endif
2324
2325 /* 2310 /*
2326 * Determine the attributes for the string 2311 * Determine the attributes for the string
2327 */ 2312 */
2328 int fore = GET_FGCOLOR (rend); // desired foreground 2313 int fore = GET_FGCOLOR (rend); // desired foreground
2329 int back = GET_BGCOLOR (rend); // desired background 2314 int back = GET_BGCOLOR (rend); // desired background
2330 2315
2331 // only do special processing if ana attributes are set, which is rare 2316 // only do special processing if any attributes are set, which is rare
2332 if (rend & (RS_Bold | RS_Italic | RS_Uline | RS_RVid | RS_Blink)) 2317 if (rend & (RS_Bold | RS_Italic | RS_Uline | RS_RVid | RS_Blink | RS_Careful))
2333 { 2318 {
2319#if ENABLE_STYLES
2320 // force redraw after "careful" characters to avoid pixel droppings
2321 if (srp[col] & RS_Careful && col < TermWin.ncol - 1 && 0)
2322 drp[col + 1] = ~srp[col + 1];
2323
2324 // include previous careful character(s) if possible, looks nicer (best effort...)
2325 while (text > stp
2326 && srp[text - stp - 1] & RS_Careful
2327 && RS_SAME (rend, srp[text - stp - 1]))
2328 text--, count++, xpixel -= TermWin.fwidth;
2329#endif
2330
2334 bool invert = rend & RS_RVid; 2331 bool invert = rend & RS_RVid;
2335 2332
2336#ifndef NO_BOLD_UNDERLINE_REVERSE 2333#ifndef NO_BOLD_UNDERLINE_REVERSE
2337 if (rend & RS_Bold 2334 if (rend & RS_Bold
2338 && fore == Color_fg) 2335 && fore == Color_fg)
2365 SWAP_IT (fore, back, int); 2362 SWAP_IT (fore, back, int);
2366 2363
2367#ifndef NO_BOLD_UNDERLINE_REVERSE 2364#ifndef NO_BOLD_UNDERLINE_REVERSE
2368 if (ISSET_PIXCOLOR (Color_RV)) 2365 if (ISSET_PIXCOLOR (Color_RV))
2369 back = Color_RV; 2366 back = Color_RV;
2367
2368 if (fore == back)
2369 {
2370 fore = Color_bg;
2371 back = Color_fg;
2372 }
2370#endif 2373#endif
2371 } 2374 }
2372 2375
2373#ifdef TEXT_BLINK 2376#ifdef TEXT_BLINK
2374 if (rend & RS_Blink && (back == Color_bg || fore == Color_bg)) 2377 if (rend & RS_Blink && (back == Color_bg || fore == Color_bg))
2546 if (!TermWin.mapped) 2549 if (!TermWin.mapped)
2547 return; 2550 return;
2548 2551
2549 num_scr_allow = 0; 2552 num_scr_allow = 0;
2550 want_refresh = 1; 2553 want_refresh = 1;
2551
2552#if TRANSPARENT
2553 if ((options & Opt_transparent) && (am_pixmap_trans == 0))
2554 {
2555 int i;
2556
2557 if (!(options & Opt_transparent_all))
2558 i = 0;
2559 else
2560 i = (int) (sizeof (TermWin.parent) / sizeof (Window));
2561
2562 while (i--)
2563 if (TermWin.parent[i] != None)
2564 XClearWindow (display->display, TermWin.parent[i]);
2565 }
2566#endif
2567 2554
2568 if (really) 2555 if (really)
2569 XClearWindow (display->display, TermWin.vt); 2556 XClearWindow (display->display, TermWin.vt);
2570} 2557}
2571 2558

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines