*** empty log message ***
authorroot <root>
Tue, 3 Oct 2006 11:56:48 +0000 (11:56 +0000)
committerroot <root>
Tue, 3 Oct 2006 11:56:48 +0000 (11:56 +0000)
Changes
src/screen.C

diff --git a/Changes b/Changes
index 32bb0acaee755a9499d5b5c7aceadd3a5aa10f74..e7ef318d53f296cba209747cbfa0855235440fad 100644 (file)
--- 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
index 321b2d4807eee02bac05b248e0e8c1d2a2594820..bc532106b4b5d6290eca9a2ffe4046d19ef91d5d 100644 (file)
@@ -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),