From 2394f7000edf0a03b6d1505c2a099ad15464ef13 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Oct 2006 11:56:48 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 5 +++-- src/screen.C | 49 +++++++++++++++++++++++++++---------------------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/Changes b/Changes index 32bb0aca..e7ef318d 100644 --- a/Changes +++ b/Changes @@ -21,7 +21,6 @@ WISH: http://www120.pair.com/mccarthy/nextstep/intro.htmld/Workspace.html is the WISH: kick out xpm.C, replace by pixbuf DUMB: support tex fonts -TODO: outline cursor color broken? http://bereft.net/rxvt-cursor2.png http://bereft.net/rxvt-cursor1.png TODO: add ctype locale info to some menu to aid the "support" TODO: (exg) rxvt -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 U+39b+U+30a wipes out 39b 8.0 @@ -31,6 +30,8 @@ TODO: (exg) rxvt -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 U - fix a crash caused by passing negative widths to overlay functions. - added 'matcher' extension by tpope, replacing the mark-urls extension. - improve url regex to match anything www.* (tpope). + - fixed bug with outline cursor color being wrong after xft fonts. + - update to libptytty-1.0. - give proper diagnostic when RXVT_SOCKET is too long instead of corrupting the stack (patch by exg). - urxvtd no longer crashes when the client sends an inaccessible @@ -39,7 +40,7 @@ TODO: (exg) rxvt -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 U - fixed many minor issues reported by Roland Baer. - Leonid Khramov spotted a minor glitch in rxvtfont.C that should not have any consequences, but was buggy nonetheless. - - update to libptytty-1.0. + - manpage fix by exg. 7.9 Mon Aug 7 18:16:07 CEST 2006 - fix the crashing bug people encountered with 7.8 + urxvtd + perl diff --git a/src/screen.C b/src/screen.C index 321b2d48..bc532106 100644 --- a/src/screen.C +++ b/src/screen.C @@ -1980,6 +1980,8 @@ rxvt_term::scr_refresh () NOTHROW rend_t cc1; /* store colours at cursor position (s) */ #endif rend_t *crp; // cursor rendition pointer + rend_t ccol1, /* Cursor colour */ + ccol2; /* Cursor colour2 */ want_refresh = 0; /* screen is current */ @@ -2010,8 +2012,6 @@ rxvt_term::scr_refresh () NOTHROW */ { unsigned char setoldcursor; - rend_t ccol1, /* Cursor colour */ - ccol2; /* Cursor colour2 */ showcursor = (screen.flags & Screen_VisibleCursor); #ifdef CURSOR_BLINK @@ -2028,35 +2028,38 @@ rxvt_term::scr_refresh () NOTHROW crp = &ROW(screen.cur.row).r[col]; - if (showcursor && focus) - { - if (OPTION (Opt_cursorUnderline)) - *crp ^= RS_Uline; - else - { - *crp ^= RS_RVid; - #ifndef NO_CURSORCOLOR - cc1 = *crp & (RS_fgMask | RS_bgMask); - if (ISSET_PIXCOLOR (Color_cursor)) - ccol1 = Color_cursor; - else + cc1 = *crp & (RS_fgMask | RS_bgMask); + if (ISSET_PIXCOLOR (Color_cursor)) + ccol1 = Color_cursor; + else +#endif #ifdef CURSOR_COLOR_IS_RENDITION_COLOR - ccol1 = fgcolor_of (rstyle); + ccol1 = fgcolor_of (rstyle); #else - ccol1 = Color_fg; + ccol1 = Color_fg; +#endif + +#ifndef NO_CURSORCOLOR + if (ISSET_PIXCOLOR (Color_cursor2)) + ccol2 = Color_cursor2; + else #endif - if (ISSET_PIXCOLOR (Color_cursor2)) - ccol2 = Color_cursor2; - else #ifdef CURSOR_COLOR_IS_RENDITION_COLOR - ccol2 = bgcolor_of (rstyle); + ccol2 = bgcolor_of (rstyle); #else - ccol2 = Color_bg; + ccol2 = Color_bg; #endif + + if (showcursor && focus) + { + if (OPTION (Opt_cursorUnderline)) + *crp ^= RS_Uline; + else + { + *crp ^= RS_RVid; *crp = SET_FGCOLOR (*crp, ccol1); *crp = SET_BGCOLOR (*crp, ccol2); -#endif } } } @@ -2420,7 +2423,9 @@ rxvt_term::scr_refresh () NOTHROW #ifndef NO_CURSORCOLOR if (ISSET_PIXCOLOR (Color_cursor)) XSetForeground (dpy, gc, pix_colors[Color_cursor]); + else #endif + XSetForeground (dpy, gc, pix_colors[ccol1]); XDrawRectangle (dpy, drawBuffer, gc, Col2Pixel (col), -- 2.34.1