*** empty log message ***
authorroot <root>
Tue, 31 Jan 2006 00:25:16 +0000 (00:25 +0000)
committerroot <root>
Tue, 31 Jan 2006 00:25:16 +0000 (00:25 +0000)
17 files changed:
Changes
README.FAQ
doc/rxvt.1.html
doc/rxvt.1.man.in
doc/rxvt.1.pod
doc/rxvt.1.txt
doc/rxvt.7.html
doc/rxvt.7.man.in
doc/rxvt.7.pod
doc/rxvt.7.txt
src/Makefile.in
src/command.C
src/rxvtfont.C
src/rxvttoolkit.C
src/rxvttoolkit.h
src/screen.C
src/version.h

diff --git a/Changes b/Changes
index e27c822..7dab3b7 100644 (file)
--- a/Changes
+++ b/Changes
@@ -34,8 +34,8 @@ DUMB: support tex fonts
         - short-cut allocation of known rgb values in the xlib case
           (patch by Paco-Paco).
         - overhauled color management: smaller codesize, alpha support.
-        - support rgba:rrrr/gggg/bbbb/aaaa, #argb, #aarrggbb and
-          #aaaarrrrggggbbbb (yes, it did hurt) colour "names".
+        - support "rgba:rrrr/gggg/bbbb/aaaa" color specifications and
+          an "[alpha]" prefix.
         - try to work around Xft and Xrender forcing everything to be 100%
           transparent. Long Live Xft!
         - do not include X11/Intrinsic.h anymore, directly use
@@ -48,6 +48,7 @@ DUMB: support tex fonts
         - added the OSC sequence 702 to detect the urxvt version number.
         - small configure updates.
         - further RTT optimisations.
+        - don't cause an unnecessary refresh on focus changes.
 
 7.4  Sat Jan 28 15:26:27 CET 2006
        - screen background wasn't always erased properly when scrolling,
index d61d245..1f36b9e 100644 (file)
@@ -63,9 +63,9 @@ FREQUENTLY ASKED QUESTIONS
         First of all, transparency isn't officially supported in
         rxvt-unicode, so you are mostly on your own. Do not bug the author
         about it (but you may bug everybody else). Also, if you can't get it
-        working consider it a rite of passage, and you failed.
+        working consider it a rite of passage: ... and you failed.
 
-        Here are three ways to get transparency. Do read the manpage and
+        Here are four ways to get transparency. Do read the manpage and
         option descriptions for the programs mentioned and rxvt-unicode.
         Really, do it!
 
@@ -89,13 +89,23 @@ FREQUENTLY ASKED QUESTIONS
 
         3. Use an ARGB visual:
 
-           rxvt -depth 432 -fg grey90 -bg rgba:0000/0000/0000/c000
+           rxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
 
-        This requires XFT support, and support form your X-server. If that
+        This requires XFT support, and the support of your X-server. If that
         doesn't work for you, blame Xorg and Keith Packard. ARGB visuals
         aren't there yet, no matter what they claim. Rxvt-Unicode contains
         the neccessary bugfixes and workarounds for Xft and Xlib to make it
-        work.
+        work, but that doesn't mean that your WM has the required kludges in
+        place.
+
+        4. Use xcompmgr and let it do the job:
+
+          xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
+                -set _NET_WM_WINDOW_OPACITY 0xc0000000
+
+        Then click on a window you want to make transparent. Replace
+        0xc0000000 by other values to change the degree of opacity. If it
+        doesn't work and your server crashes, you got to keep the pieces.
 
     Isn't rxvt supposed to be small? Don't all those features bloat?
         I often get asked about this, and I think, no, they didn't cause
index 075d6cd..aecf9b7 100644 (file)
        <li><a href="#iso_14755_support">ISO 14755 SUPPORT</a></li>
        <li><a href="#login_stamp">LOGIN STAMP</a></li>
        <li><a href="#colors_and_graphics">COLORS AND GRAPHICS</a></li>
+       <ul>
+
+               <li><a href="#alpha_channel_support">ALPHA CHANNEL SUPPORT</a></li>
+       </ul>
+
        <li><a href="#environment">ENVIRONMENT</a></li>
        <li><a href="#files">FILES</a></li>
        <li><a href="#see_also">SEE ALSO</a></li>
@@ -48,7 +53,7 @@
 </p>
 <hr />
 <h1><a name="description">DESCRIPTION</a></h1>
-<p><strong>rxvt-unicode</strong>, version <strong>7.4</strong>, is a colour vt102 terminal
+<p><strong>rxvt-unicode</strong>, version <strong>7.5</strong>, is a colour vt102 terminal
 emulator intended as an <em>xterm</em>(1) replacement for users who do not
 require features such as Tektronix 4014 emulation and toolkit-style
 configurability. As a result, <strong>rxvt-unicode</strong> uses much less swap space --
@@ -1736,17 +1741,6 @@ colours with their names.</p>
 <strong>background</strong>, <strong>cursorColor</strong>, <strong>cursorColor2</strong>, <strong>colorBD</strong>, <strong>colorUL</strong> as
 a number 0-15, as a convenient shorthand to reference the colour name of
 color0-color15.</p>
-<p>If Xft support has been compiled in and as long as Xft/Xrender/X don't get
-their act together, rxvt-unicode will support <code>rgba:rrrr/gggg/bbbb/aaaa</code>
-(recommended, but <strong>MUST</strong> have 4 digits/component), <code>#ARGB</code>, <code>#AARRGGBB</code>
-and <code>#AAAARRRRGGGGBBBB</code> colour specifications, in addition to the ones
-provided by X, where the additional A component specifies alpha (opacity)
-values (0 is completely transparent and the maximum is opaque). You
-probably need to specify <strong>``-depth 32''</strong>, too, and have the luck that your
-X-server uses ARGB pixel layout, as X is far from just supporting ARGB
-visuals out of the box, and rxvt-unicode just fudges around.</p>
-<p><em>Please note that transparency of any kind if completely unsupported by
-the author. Don't bug him with installation questions!</em></p>
 <p>Note that <strong>-rv</strong> (<strong>``reverseVideo: True''</strong>) simulates reverse video by
 always swapping the foreground/background colours. This is in contrast to
 <em>xterm</em>(1) where the colours are only swapped if they have not otherwise
@@ -1761,6 +1755,25 @@ on White.
 <p></p></dl>
 <p>
 </p>
+<h2><a name="alpha_channel_support">ALPHA CHANNEL SUPPORT</a></h2>
+<p>If Xft support has been compiled in and as long as Xft/Xrender/X don't get
+their act together, rxvt-unicode will support <code>rgba:rrrr/gggg/bbbb/aaaa</code>
+(recommended, but <strong>MUST</strong> have 4 digits/component) colour specifications,
+in addition to the ones provided by X, where the additional A component
+specifies opacity (alpha) values. The minimum value of <code>0</code> is completely
+transparent). You can also prefix any color with <code>[a]</code>, where <code>a</code> is on
+to four hex digits specifiying the opacity value.</p>
+<p>You probably need to specify <strong>``-depth 32''</strong>, too, and have the luck that
+your X-server uses ARGB pixel layout, as X is far from just supporting
+ARGB visuals out of the box, and rxvt-unicode just fudges around.</p>
+<p>For example, the following selects an almost completely transparent red
+background, and an almost opaque pink foreground:</p>
+<pre>
+   rxvt -depth 32 -bg rgba:0000/0000/0000/2222 -fg &quot;[e]pink&quot;</pre>
+<p><em>Please note that transparency of any kind if completely unsupported by
+the author. Don't bug him with installation questions!</em></p>
+<p>
+</p>
 <hr />
 <h1><a name="environment">ENVIRONMENT</a></h1>
 <p><strong>rxvt</strong> sets and/or uses the following environment variables:</p>
index 8f13c30..16af866 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rxvt 1"
-.TH rxvt 1 "2006-01-29" "7.4" "RXVT-UNICODE"
+.TH rxvt 1 "2006-01-31" "7.5" "RXVT-UNICODE"
 .SH "NAME"
 rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system)
 .SH "SYNOPSIS"
@@ -1344,19 +1344,6 @@ It is also possible to specify the colour values of \fBforeground\fR,
 a number 0\-15, as a convenient shorthand to reference the colour name of
 color0\-color15.
 .PP
-If Xft support has been compiled in and as long as Xft/Xrender/X don't get
-their act together, rxvt-unicode will support \f(CW\*(C`rgba:rrrr/gggg/bbbb/aaaa\*(C'\fR
-(recommended, but \fB\s-1MUST\s0\fR have 4 digits/component), \f(CW\*(C`#ARGB\*(C'\fR, \f(CW\*(C`#AARRGGBB\*(C'\fR
-and \f(CW\*(C`#AAAARRRRGGGGBBBB\*(C'\fR colour specifications, in addition to the ones
-provided by X, where the additional A component specifies alpha (opacity)
-values (0 is completely transparent and the maximum is opaque). You
-probably need to specify \fB\*(L"\-depth 32\*(R"\fR, too, and have the luck that your
-X\-server uses \s-1ARGB\s0 pixel layout, as X is far from just supporting \s-1ARGB\s0
-visuals out of the box, and rxvt-unicode just fudges around.
-.PP
-\&\fIPlease note that transparency of any kind if completely unsupported by
-the author. Don't bug him with installation questions!\fR
-.PP
 Note that \fB\-rv\fR (\fB\*(L"reverseVideo: True\*(R"\fR) simulates reverse video by
 always swapping the foreground/background colours. This is in contrast to
 \&\fIxterm\fR(1) where the colours are only swapped if they have not otherwise
@@ -1365,6 +1352,29 @@ been specified. For example,
 .IX Item "@@RXVT_NAME@@ -fg Black -bg White -rv"
 would yield White on Black, while on \fIxterm\fR(1) it would yield Black
 on White.
+.Sh "\s-1ALPHA\s0 \s-1CHANNEL\s0 \s-1SUPPORT\s0"
+.IX Subsection "ALPHA CHANNEL SUPPORT"
+If Xft support has been compiled in and as long as Xft/Xrender/X don't get
+their act together, rxvt-unicode will support \f(CW\*(C`rgba:rrrr/gggg/bbbb/aaaa\*(C'\fR
+(recommended, but \fB\s-1MUST\s0\fR have 4 digits/component) colour specifications,
+in addition to the ones provided by X, where the additional A component
+specifies opacity (alpha) values. The minimum value of \f(CW0\fR is completely
+transparent). You can also prefix any color with \f(CW\*(C`[a]\*(C'\fR, where \f(CW\*(C`a\*(C'\fR is on
+to four hex digits specifiying the opacity value.
+.PP
+You probably need to specify \fB\*(L"\-depth 32\*(R"\fR, too, and have the luck that
+your X\-server uses \s-1ARGB\s0 pixel layout, as X is far from just supporting
+\&\s-1ARGB\s0 visuals out of the box, and rxvt-unicode just fudges around.
+.PP
+For example, the following selects an almost completely transparent red
+background, and an almost opaque pink foreground:
+.PP
+.Vb 1
+\&   @@RXVT_NAME@@ -depth 32 -bg rgba:0000/0000/0000/2222 -fg "[e]pink"
+.Ve
+.PP
+\&\fIPlease note that transparency of any kind if completely unsupported by
+the author. Don't bug him with installation questions!\fR
 .SH "ENVIRONMENT"
 .IX Header "ENVIRONMENT"
 \&\fB@@RXVT_NAME@@\fR sets and/or uses the following environment variables:
index 3c16853..e725d00 100644 (file)
@@ -1348,19 +1348,6 @@ B<background>, B<cursorColor>, B<cursorColor2>, B<colorBD>, B<colorUL> as
 a number 0-15, as a convenient shorthand to reference the colour name of
 color0-color15.
 
-If Xft support has been compiled in and as long as Xft/Xrender/X don't get
-their act together, rxvt-unicode will support C<rgba:rrrr/gggg/bbbb/aaaa>
-(recommended, but B<MUST> have 4 digits/component), C<#ARGB>, C<#AARRGGBB>
-and C<#AAAARRRRGGGGBBBB> colour specifications, in addition to the ones
-provided by X, where the additional A component specifies alpha (opacity)
-values (0 is completely transparent and the maximum is opaque). You
-probably need to specify B<"-depth 32">, too, and have the luck that your
-X-server uses ARGB pixel layout, as X is far from just supporting ARGB
-visuals out of the box, and rxvt-unicode just fudges around.
-
-I<Please note that transparency of any kind if completely unsupported by
-the author. Don't bug him with installation questions!>
-
 Note that B<-rv> (B<"reverseVideo: True">) simulates reverse video by
 always swapping the foreground/background colours. This is in contrast to
 I<xterm>(1) where the colours are only swapped if they have not otherwise
@@ -1375,6 +1362,28 @@ on White.
 
 =back
 
+=head2 ALPHA CHANNEL SUPPORT
+
+If Xft support has been compiled in and as long as Xft/Xrender/X don't get
+their act together, rxvt-unicode will support C<rgba:rrrr/gggg/bbbb/aaaa>
+(recommended, but B<MUST> have 4 digits/component) colour specifications,
+in addition to the ones provided by X, where the additional A component
+specifies opacity (alpha) values. The minimum value of C<0> is completely
+transparent). You can also prefix any color with C<[a]>, where C<a> is on
+to four hex digits specifiying the opacity value.
+
+You probably need to specify B<"-depth 32">, too, and have the luck that
+your X-server uses ARGB pixel layout, as X is far from just supporting
+ARGB visuals out of the box, and rxvt-unicode just fudges around.
+
+For example, the following selects an almost completely transparent red
+background, and an almost opaque pink foreground:
+
+   @@RXVT_NAME@@ -depth 32 -bg rgba:0000/0000/0000/2222 -fg "[e]pink"
+
+I<Please note that transparency of any kind if completely unsupported by
+the author. Don't bug him with installation questions!>
+
 =head1 ENVIRONMENT
 
 B<@@RXVT_NAME@@> sets and/or uses the following environment variables:
index 10cc997..36d09e9 100644 (file)
@@ -6,7 +6,7 @@ SYNOPSIS
     rxvt [options] [-e command [ args ]]
 
 DESCRIPTION
-    rxvt-unicode, version 7.4, is a colour vt102 terminal emulator intended
+    rxvt-unicode, version 7.5, is a colour vt102 terminal emulator intended
     as an *xterm*(1) replacement for users who do not require features such
     as Tektronix 4014 emulation and toolkit-style configurability. As a
     result, rxvt-unicode uses much less swap space -- a significant
@@ -1177,20 +1177,6 @@ COLORS AND GRAPHICS
     0-15, as a convenient shorthand to reference the colour name of
     color0-color15.
 
-    If Xft support has been compiled in and as long as Xft/Xrender/X don't
-    get their act together, rxvt-unicode will support
-    "rgba:rrrr/gggg/bbbb/aaaa" (recommended, but MUST have 4
-    digits/component), "#ARGB", "#AARRGGBB" and "#AAAARRRRGGGGBBBB" colour
-    specifications, in addition to the ones provided by X, where the
-    additional A component specifies alpha (opacity) values (0 is completely
-    transparent and the maximum is opaque). You probably need to specify
-    "-depth 32", too, and have the luck that your X-server uses ARGB pixel
-    layout, as X is far from just supporting ARGB visuals out of the box,
-    and rxvt-unicode just fudges around.
-
-    *Please note that transparency of any kind if completely unsupported by
-    the author. Don't bug him with installation questions!*
-
     Note that -rv ("reverseVideo: True") simulates reverse video by always
     swapping the foreground/background colours. This is in contrast to
     *xterm*(1) where the colours are only swapped if they have not otherwise
@@ -1200,6 +1186,28 @@ COLORS AND GRAPHICS
         would yield White on Black, while on *xterm*(1) it would yield Black
         on White.
 
+  ALPHA CHANNEL SUPPORT
+    If Xft support has been compiled in and as long as Xft/Xrender/X don't
+    get their act together, rxvt-unicode will support
+    "rgba:rrrr/gggg/bbbb/aaaa" (recommended, but MUST have 4
+    digits/component) colour specifications, in addition to the ones
+    provided by X, where the additional A component specifies opacity
+    (alpha) values. The minimum value of 0 is completely transparent). You
+    can also prefix any color with "[a]", where "a" is on to four hex digits
+    specifiying the opacity value.
+
+    You probably need to specify "-depth 32", too, and have the luck that
+    your X-server uses ARGB pixel layout, as X is far from just supporting
+    ARGB visuals out of the box, and rxvt-unicode just fudges around.
+
+    For example, the following selects an almost completely transparent red
+    background, and an almost opaque pink foreground:
+
+       rxvt -depth 32 -bg rgba:0000/0000/0000/2222 -fg "[e]pink"
+
+    *Please note that transparency of any kind if completely unsupported by
+    the author. Don't bug him with installation questions!*
+
 ENVIRONMENT
     rxvt sets and/or uses the following environment variables:
 
index 1392919..c157686 100644 (file)
@@ -56,8 +56,7 @@
 <h1><a name="description">DESCRIPTION</a></h1>
 <p>This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting
 all escape sequences, and other background information.</p>
-<p>The newest version of this document is
-also available on the World Wide Web at
+<p>The newest version of this document is also available on the World Wide Web at
 <a href="http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html">http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html</a>.</p>
 <p>
 </p>
@@ -154,10 +153,10 @@ works. If unsure, use the form above.</p>
 First of all, transparency isn't officially supported in rxvt-unicode, so
 you are mostly on your own. Do not bug the author about it (but you may
 bug everybody else). Also, if you can't get it working consider it a rite
-of passage, and you failed.
+of passage: ... and you failed.
 </dd>
 <dd>
-<p>Here are three ways to get transparency. <strong>Do</strong> read the manpage and option
+<p>Here are four ways to get transparency. <strong>Do</strong> read the manpage and option
 descriptions for the programs mentioned and rxvt-unicode. Really, do it!</p>
 </dd>
 <dd>
@@ -191,13 +190,27 @@ are unable to read.</p>
 </dd>
 <dd>
 <pre>
-   rxvt -depth 432 -fg grey90 -bg rgba:0000/0000/0000/c000</pre>
+   rxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc</pre>
 </dd>
 <dd>
-<p>This requires XFT support, and support form your X-server. If that doesn't
-work for you, blame Xorg and Keith Packard. ARGB visuals aren't there yet,
-no matter what they claim. Rxvt-Unicode contains the neccessary bugfixes
-and workarounds for Xft and Xlib to make it work.</p>
+<p>This requires XFT support, and the support of your X-server. If that
+doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
+there yet, no matter what they claim. Rxvt-Unicode contains the neccessary
+bugfixes and workarounds for Xft and Xlib to make it work, but that
+doesn't mean that your WM has the required kludges in place.</p>
+</dd>
+<dd>
+<p>4. Use xcompmgr and let it do the job:</p>
+</dd>
+<dd>
+<pre>
+  xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
+        -set _NET_WM_WINDOW_OPACITY 0xc0000000</pre>
+</dd>
+<dd>
+<p>Then click on a window you want to make transparent. Replace <code>0xc0000000</code>
+by other values to change the degree of opacity. If it doesn't work and
+your server crashes, you got to keep the pieces.</p>
 </dd>
 <p></p>
 <dt><strong><a name="item_isn_27t_rxvt_supposed_to_be_small_3f_don_27t_all_t">Isn't rxvt supposed to be small? Don't all those features bloat?</a></strong><br />
index a75286b..c4865a3 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rxvt 7"
-.TH rxvt 7 "2006-01-30" "7.4" "RXVT-UNICODE"
+.TH rxvt 7 "2006-01-31" "7.5" "RXVT-UNICODE"
 .SH "NAME"
 RXVT REFERENCE \- FAQ, command sequences and other background information
 .SH "SYNOPSIS"
@@ -153,8 +153,7 @@ RXVT REFERENCE \- FAQ, command sequences and other background information
 This document contains the \s-1FAQ\s0, the \s-1RXVT\s0 \s-1TECHNICAL\s0 \s-1REFERENCE\s0 documenting
 all escape sequences, and other background information.
 .PP
-The newest version of this document is
-also available on the World Wide Web at
+The newest version of this document is also available on the World Wide Web at
 <http://cvs.schmorp.de/browse/*checkout*/rxvt\-unicode/doc/rxvt.7.html>.
 .SH "FREQUENTLY ASKED QUESTIONS"
 .IX Header "FREQUENTLY ASKED QUESTIONS"
@@ -228,9 +227,9 @@ works. If unsure, use the form above.
 First of all, transparency isn't officially supported in rxvt\-unicode, so
 you are mostly on your own. Do not bug the author about it (but you may
 bug everybody else). Also, if you can't get it working consider it a rite
-of passage, and you failed.
+of passage: ... and you failed.
 .Sp
-Here are three ways to get transparency. \fBDo\fR read the manpage and option
+Here are four ways to get transparency. \fBDo\fR read the manpage and option
 descriptions for the programs mentioned and rxvt\-unicode. Really, do it!
 .Sp
 1. Use inheritPixmap:
@@ -258,13 +257,25 @@ are unable to read.
 3. Use an \s-1ARGB\s0 visual:
 .Sp
 .Vb 1
-\&   @@RXVT_NAME@@ -depth 432 -fg grey90 -bg rgba:0000/0000/0000/c000
+\&   @@RXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
 .Ve
 .Sp
-This requires \s-1XFT\s0 support, and support form your X\-server. If that doesn't
-work for you, blame Xorg and Keith Packard. \s-1ARGB\s0 visuals aren't there yet,
-no matter what they claim. Rxvt-Unicode contains the neccessary bugfixes
-and workarounds for Xft and Xlib to make it work.
+This requires \s-1XFT\s0 support, and the support of your X\-server. If that
+doesn't work for you, blame Xorg and Keith Packard. \s-1ARGB\s0 visuals aren't
+there yet, no matter what they claim. Rxvt-Unicode contains the neccessary
+bugfixes and workarounds for Xft and Xlib to make it work, but that
+doesn't mean that your \s-1WM\s0 has the required kludges in place.
+.Sp
+4. Use xcompmgr and let it do the job:
+.Sp
+.Vb 2
+\&  xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \e
+\&        -set _NET_WM_WINDOW_OPACITY 0xc0000000
+.Ve
+.Sp
+Then click on a window you want to make transparent. Replace \f(CW0xc0000000\fR
+by other values to change the degree of opacity. If it doesn't work and
+your server crashes, you got to keep the pieces.
 .IP "Isn't rxvt supposed to be small? Don't all those features bloat?" 4
 .IX Item "Isn't rxvt supposed to be small? Don't all those features bloat?"
 I often get asked about this, and I think, no, they didn't cause extra
index 3608fc8..840cb7d 100644 (file)
@@ -18,8 +18,7 @@ RXVT REFERENCE - FAQ, command sequences and other background information
 This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting
 all escape sequences, and other background information.
 
-The newest version of this document is
-also available on the World Wide Web at
+The newest version of this document is also available on the World Wide Web at
 L<http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>.
 
 =head1 FREQUENTLY ASKED QUESTIONS
@@ -91,9 +90,9 @@ works. If unsure, use the form above.
 First of all, transparency isn't officially supported in rxvt-unicode, so
 you are mostly on your own. Do not bug the author about it (but you may
 bug everybody else). Also, if you can't get it working consider it a rite
-of passage, and you failed.
+of passage: ... and you failed.
 
-Here are three ways to get transparency. B<Do> read the manpage and option
+Here are four ways to get transparency. B<Do> read the manpage and option
 descriptions for the programs mentioned and rxvt-unicode. Really, do it!
 
 1. Use inheritPixmap:
@@ -116,12 +115,22 @@ are unable to read.
 
 3. Use an ARGB visual:
 
-   @@RXVT_NAME@@ -depth 432 -fg grey90 -bg rgba:0000/0000/0000/c000
+   @@RXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
 
-This requires XFT support, and support form your X-server. If that doesn't
-work for you, blame Xorg and Keith Packard. ARGB visuals aren't there yet,
-no matter what they claim. Rxvt-Unicode contains the neccessary bugfixes
-and workarounds for Xft and Xlib to make it work.
+This requires XFT support, and the support of your X-server. If that
+doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
+there yet, no matter what they claim. Rxvt-Unicode contains the neccessary
+bugfixes and workarounds for Xft and Xlib to make it work, but that
+doesn't mean that your WM has the required kludges in place.
+
+4. Use xcompmgr and let it do the job:
+
+  xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
+        -set _NET_WM_WINDOW_OPACITY 0xc0000000
+
+Then click on a window you want to make transparent. Replace C<0xc0000000>
+by other values to change the degree of opacity. If it doesn't work and
+your server crashes, you got to keep the pieces.
 
 =item Isn't rxvt supposed to be small? Don't all those features bloat?
 
index d4f527e..17387a6 100644 (file)
@@ -84,9 +84,9 @@ FREQUENTLY ASKED QUESTIONS
         First of all, transparency isn't officially supported in
         rxvt-unicode, so you are mostly on your own. Do not bug the author
         about it (but you may bug everybody else). Also, if you can't get it
-        working consider it a rite of passage, and you failed.
+        working consider it a rite of passage: ... and you failed.
 
-        Here are three ways to get transparency. Do read the manpage and
+        Here are four ways to get transparency. Do read the manpage and
         option descriptions for the programs mentioned and rxvt-unicode.
         Really, do it!
 
@@ -110,13 +110,23 @@ FREQUENTLY ASKED QUESTIONS
 
         3. Use an ARGB visual:
 
-           rxvt -depth 432 -fg grey90 -bg rgba:0000/0000/0000/c000
+           rxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
 
-        This requires XFT support, and support form your X-server. If that
+        This requires XFT support, and the support of your X-server. If that
         doesn't work for you, blame Xorg and Keith Packard. ARGB visuals
         aren't there yet, no matter what they claim. Rxvt-Unicode contains
         the neccessary bugfixes and workarounds for Xft and Xlib to make it
-        work.
+        work, but that doesn't mean that your WM has the required kludges in
+        place.
+
+        4. Use xcompmgr and let it do the job:
+
+          xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
+                -set _NET_WM_WINDOW_OPACITY 0xc0000000
+
+        Then click on a window you want to make transparent. Replace
+        0xc0000000 by other values to change the degree of opacity. If it
+        doesn't work and your server crashes, you got to keep the pieces.
 
     Isn't rxvt supposed to be small? Don't all those features bloat?
         I often get asked about this, and I think, no, they didn't cause
index a369306..9651b53 100644 (file)
@@ -344,3 +344,201 @@ xdefaults.lo: keyboard.h
 xpm.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h rxvtutil.h
 xpm.lo: rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h salloc.h
 xpm.lo: libptytty.h rxvtperl.h hookinc.h rsinc.h
+
+command.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+command.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+command.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h version.h
+command.lo: command.h keyboard.h
+encoding.lo: ../config.h encoding.h table/iso8859_1.h table/iso8859_15.h
+encoding.lo: table/iso8859_2.h table/iso8859_3.h table/iso8859_4.h
+encoding.lo: table/iso8859_5.h table/iso8859_6.h table/iso8859_7.h
+encoding.lo: table/iso8859_8.h table/iso8859_9.h table/iso8859_10.h
+encoding.lo: table/iso8859_11.h table/iso8859_13.h table/iso8859_14.h
+encoding.lo: table/iso8859_16.h table/koi8_r.h table/koi8_u.h
+encoding.lo: table/ksc5601_1987_0.h table/big5.h table/gbk_0.h
+encoding.lo: table/gb2312_1980_0.h table/cns11643_1992_1.h
+encoding.lo: table/cns11643_1992_2.h table/cns11643_1992_3.h
+encoding.lo: table/cns11643_1992_4.h table/cns11643_1992_5.h
+encoding.lo: table/cns11643_1992_6.h table/cns11643_1992_7.h
+encoding.lo: table/cns11643_1992_f.h table/big5_ext.h table/big5_plus.h
+encoding.lo: table/viscii.h table/jis0201_1976_0.h table/jis0208_1990_0.h
+encoding.lo: table/jis0212_1990_0.h table/jis0213_1.h table/jis0213_2.h
+encoding.lo: table/compose.h table/category.h
+fdpass.lo: ../config.h libptytty.h
+init.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+init.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+init.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h init.h
+iom.lo: iom.h iom_conf.h rxvtutil.h callback.h
+keyboard.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+keyboard.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+keyboard.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+keyboard.lo: command.h
+logging.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+logging.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+logging.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+main.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+main.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+main.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+misc.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+misc.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+misc.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+netdisp.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+netdisp.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+netdisp.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+proxy.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+proxy.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+proxy.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+ptytty.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+ptytty.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+ptytty.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+rxvt.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvt.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvt.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtc.lo: ../config.h rxvtdaemon.h rxvtutil.h libptytty.h rxvt.h rxvtlib.h
+rxvtc.lo: optinc.h feature.h encoding.h rxvtfont.h rxvttoolkit.h iom.h
+rxvtc.lo: iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+rxvtd.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvtd.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvtd.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h rxvtdaemon.h
+rxvtdaemon.lo: rxvtdaemon.h rxvtutil.h
+rxvtfont.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvtfont.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvtfont.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtfont.lo: table/linedraw.h
+rxvtperl.lo: ../config.h iom.h iom_conf.h rxvtutil.h callback.h rxvt.h
+rxvtperl.lo: rxvtlib.h optinc.h feature.h encoding.h rxvtfont.h rxvttoolkit.h
+rxvtperl.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+rxvtperl.lo: perlxsi.c
+rxvttoolkit.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvttoolkit.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+rxvttoolkit.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtutil.lo: rxvtutil.h
+salloc.lo: salloc.h
+screen.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+screen.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+screen.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h salloc.C
+scrollbar-next.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar-next.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+scrollbar-next.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h
+scrollbar-next.lo: rsinc.h
+scrollbar-plain.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h
+scrollbar-plain.lo: encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h
+scrollbar-plain.lo: iom_conf.h callback.h salloc.h libptytty.h rxvtperl.h
+scrollbar-plain.lo: hookinc.h rsinc.h
+scrollbar-rxvt.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar-rxvt.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+scrollbar-rxvt.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h
+scrollbar-rxvt.lo: rsinc.h
+scrollbar-xterm.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h
+scrollbar-xterm.lo: encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h
+scrollbar-xterm.lo: iom_conf.h callback.h salloc.h libptytty.h rxvtperl.h
+scrollbar-xterm.lo: hookinc.h rsinc.h
+scrollbar.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+scrollbar.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+xdefaults.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+xdefaults.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+xdefaults.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h version.h
+xdefaults.lo: keyboard.h
+xpm.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h rxvtutil.h
+xpm.lo: rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h salloc.h
+xpm.lo: libptytty.h rxvtperl.h hookinc.h rsinc.h
+
+command.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+command.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+command.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h version.h
+command.lo: command.h keyboard.h
+encoding.lo: ../config.h encoding.h table/iso8859_1.h table/iso8859_15.h
+encoding.lo: table/iso8859_2.h table/iso8859_3.h table/iso8859_4.h
+encoding.lo: table/iso8859_5.h table/iso8859_6.h table/iso8859_7.h
+encoding.lo: table/iso8859_8.h table/iso8859_9.h table/iso8859_10.h
+encoding.lo: table/iso8859_11.h table/iso8859_13.h table/iso8859_14.h
+encoding.lo: table/iso8859_16.h table/koi8_r.h table/koi8_u.h
+encoding.lo: table/ksc5601_1987_0.h table/big5.h table/gbk_0.h
+encoding.lo: table/gb2312_1980_0.h table/cns11643_1992_1.h
+encoding.lo: table/cns11643_1992_2.h table/cns11643_1992_3.h
+encoding.lo: table/cns11643_1992_4.h table/cns11643_1992_5.h
+encoding.lo: table/cns11643_1992_6.h table/cns11643_1992_7.h
+encoding.lo: table/cns11643_1992_f.h table/big5_ext.h table/big5_plus.h
+encoding.lo: table/viscii.h table/jis0201_1976_0.h table/jis0208_1990_0.h
+encoding.lo: table/jis0212_1990_0.h table/jis0213_1.h table/jis0213_2.h
+encoding.lo: table/compose.h table/category.h
+fdpass.lo: ../config.h libptytty.h
+init.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+init.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+init.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h init.h
+iom.lo: iom.h iom_conf.h rxvtutil.h callback.h
+keyboard.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+keyboard.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+keyboard.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+keyboard.lo: command.h
+logging.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+logging.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+logging.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+main.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+main.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+main.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+misc.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+misc.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+misc.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+netdisp.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+netdisp.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+netdisp.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+proxy.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+proxy.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+proxy.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+ptytty.lo: ../config.h ptytty.h libptytty.h ptytty_conf.h rxvt.h rxvtlib.h
+ptytty.lo: optinc.h feature.h encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h
+ptytty.lo: iom.h iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+rxvt.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvt.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvt.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtc.lo: ../config.h rxvtdaemon.h rxvtutil.h libptytty.h rxvt.h rxvtlib.h
+rxvtc.lo: optinc.h feature.h encoding.h rxvtfont.h rxvttoolkit.h iom.h
+rxvtc.lo: iom_conf.h callback.h salloc.h rxvtperl.h hookinc.h rsinc.h
+rxvtd.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvtd.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvtd.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h rxvtdaemon.h
+rxvtdaemon.lo: rxvtdaemon.h rxvtutil.h
+rxvtfont.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvtfont.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+rxvtfont.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtfont.lo: table/linedraw.h
+rxvtperl.lo: ../config.h iom.h iom_conf.h rxvtutil.h callback.h rxvt.h
+rxvtperl.lo: rxvtlib.h optinc.h feature.h encoding.h rxvtfont.h rxvttoolkit.h
+rxvtperl.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h keyboard.h
+rxvtperl.lo: perlxsi.c
+rxvttoolkit.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+rxvttoolkit.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+rxvttoolkit.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+rxvtutil.lo: rxvtutil.h
+salloc.lo: salloc.h
+screen.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+screen.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+screen.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h salloc.C
+scrollbar-next.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar-next.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+scrollbar-next.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h
+scrollbar-next.lo: rsinc.h
+scrollbar-plain.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h
+scrollbar-plain.lo: encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h
+scrollbar-plain.lo: iom_conf.h callback.h salloc.h libptytty.h rxvtperl.h
+scrollbar-plain.lo: hookinc.h rsinc.h
+scrollbar-rxvt.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar-rxvt.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h
+scrollbar-rxvt.lo: callback.h salloc.h libptytty.h rxvtperl.h hookinc.h
+scrollbar-rxvt.lo: rsinc.h
+scrollbar-xterm.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h
+scrollbar-xterm.lo: encoding.h rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h
+scrollbar-xterm.lo: iom_conf.h callback.h salloc.h libptytty.h rxvtperl.h
+scrollbar-xterm.lo: hookinc.h rsinc.h
+scrollbar.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+scrollbar.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+scrollbar.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h
+xdefaults.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h
+xdefaults.lo: rxvtutil.h rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h
+xdefaults.lo: salloc.h libptytty.h rxvtperl.h hookinc.h rsinc.h version.h
+xdefaults.lo: keyboard.h
+xpm.lo: ../config.h rxvt.h rxvtlib.h optinc.h feature.h encoding.h rxvtutil.h
+xpm.lo: rxvtfont.h rxvttoolkit.h iom.h iom_conf.h callback.h salloc.h
+xpm.lo: libptytty.h rxvtperl.h hookinc.h rsinc.h
index 1a29da9..0f0630c 100644 (file)
@@ -1705,7 +1705,6 @@ rxvt_term::focus_in ()
   if (!focus)
     {
       focus = 1;
-      want_refresh = 1;
 
       HOOK_INVOKE ((this, HOOK_FOCUS_OUT, DT_END));
 
@@ -1724,6 +1723,7 @@ rxvt_term::focus_in ()
       if (rs[Rs_fade])
         {
           pix_colors = pix_colors_focused;
+          want_refresh = 1;
           scr_recolour ();
         }
 #endif
@@ -1736,7 +1736,6 @@ rxvt_term::focus_out ()
   if (focus)
     {
       focus = 0;
-      want_refresh = 1;
 
       HOOK_INVOKE ((this, HOOK_FOCUS_OUT, DT_END));
 
@@ -1762,6 +1761,7 @@ rxvt_term::focus_out ()
       if (rs[Rs_fade])
         {
           pix_colors = pix_colors_unfocused;
+          want_refresh = 1;
           scr_recolour ();
         }
 #endif
@@ -2540,10 +2540,10 @@ rxvt_term::check_our_parents ()
 #if TINTING
           if (ISSET_PIXCOLOR (Color_tint))
             {
-              rxvt_rgba c;
               int shade = rs[Rs_shade] ? atoi (rs[Rs_shade]) : 100;
 
-              pix_colors_focused[Color_tint].get (this, c);
+              rxvt_rgba c;
+              pix_colors_focused [Color_tint].get (this, c);
 
               ShadeXImage (this, image, shade, c.r, c.g, c.b);
             }
index 9016441..1640206 100644 (file)
@@ -1310,7 +1310,6 @@ rxvt_font_xft::draw (rxvt_drawable &d, int x, int y,
           FT_UInt glyph = XftCharIndex (disp, f, fc);
           XftGlyphExtents (disp, f, &glyph, 1, &extents);
 
-
           ep->glyph = glyph;
           ep->x = x + (cwidth - extents.xOff >> 1);
           ep->y = y + ascent;
index ffd0109..fe485c6 100644 (file)
@@ -635,40 +635,47 @@ rxvt_color::alloc (rxvt_screen *screen, rxvt_rgba rgba)
 bool
 rxvt_color::set (rxvt_screen *screen, const char *name)
 {
-  int l = strlen (name);
-  rxvt_rgba r;
+  rxvt_rgba c;
   char eos;
-  int mult;
-  XColor xc, xc_exact;
-
-  // parse a number of non-standard ARGB colour specifications
-  if (     l == 1+4*1 && 4 == sscanf (name, "#%1hx%1hx%1hx%1hx%c", &r.a, &r.r, &r.g, &r.b, &eos))
-    mult = rxvt_rgba::MAX_CC / 0x0010;
-  else if (l == 1+4*2 && 4 == sscanf (name, "#%2hx%2hx%2hx%2hx%c", &r.a, &r.r, &r.g, &r.b, &eos))
-    mult = rxvt_rgba::MAX_CC / 0x0100;
-  else if (l == 1+4*4 && 4 == sscanf (name, "#%4hx%4hx%4hx%4hx%c", &r.a, &r.r, &r.g, &r.b, &eos))
-    mult = rxvt_rgba::MAX_CC / 0x0100;
-  else if (l == 4+5*4 && 4 == sscanf (name, "rgba:%hx/%hx/%hx/%hx%c", &r.r, &r.g, &r.b, &r.a, &eos))
-    mult = rxvt_rgba::MAX_CC / 0xffff;
-  else if (XParseColor (screen->xdisp, screen->cmap, name, &xc))
+  int skip;
+
+  if (1 <= sscanf (name, "[%hx]%n", &c.a, &skip))
     {
-      r.r = xc.red;
-      r.g = xc.green;
-      r.b = xc.blue;
-      mult = rxvt_rgba::MAX_CC / 0xffff;
+      switch (skip)
+        {
+          case 2 + 1: c.a *= rxvt_rgba::MAX_CC / 0x000f; break;
+          case 2 + 2: c.a *= rxvt_rgba::MAX_CC / 0x00ff; break;
+          case 2 + 3: c.a *= rxvt_rgba::MAX_CC / 0x0fff; break;
+          case 2 + 4: c.a *= rxvt_rgba::MAX_CC / 0xffff; break;
+        }
+
+      name += skip;
     }
   else
+    c.a = rxvt_rgba::MAX_CC;
+
+  // parse the non-standard rgba format
+  if (strlen (name) != 4+5*4 || 4 != sscanf (name, "rgba:%hx/%hx/%hx/%hx%c", &c.r, &c.g, &c.b, &c.a, &eos))
     {
-      rxvt_warn ("failed to allocate color '%s', using pink instead.\n", name);
-      r.r = 255;
-      r.g = 105;
-      r.b = 180;
-      mult = rxvt_rgba::MAX_CC / 0x00ff;
-    }
+      XColor xc, xc_exact;
+
+      if (XParseColor (screen->xdisp, screen->cmap, name, &xc))
+        {
+          c.r = xc.red;
+          c.g = xc.green;
+          c.b = xc.blue;
+        }
+      else
+        {
+          c.r = 0xffff;
+          c.g = 0x6969;
+          c.b = 0xb4b4;
 
-  r.r *= mult; r.g *= mult; r.b *= mult; r.a *= mult;
+          rxvt_warn ("unable to parse color '%s', using pink instead.\n", name);
+        }
+    }
 
-  return set (screen, r);
+  return set (screen, c);
 }
 
 bool
@@ -718,7 +725,7 @@ rxvt_color::set (rxvt_screen *screen, rxvt_rgba rgba)
   return got;
 }
 
-void 
+void
 rxvt_color::get (rxvt_screen *screen, rxvt_rgba &rgba)
 {
 #if XFT
index da2b9dc..4d25101 100644 (file)
@@ -249,17 +249,16 @@ struct rxvt_color {
   bool operator == (const rxvt_color &b) const { return Pixel (*this) == Pixel (b); }
   bool operator != (const rxvt_color &b) const { return Pixel (*this) != Pixel (b); }
 
-  void get (rxvt_screen *screen, rxvt_rgba &rgba);
   bool alloc (rxvt_screen *screen, rxvt_rgba rgba);
+  void free (rxvt_screen *screen);
 
+  void get (rxvt_screen *screen, rxvt_rgba &rgba);
   bool set (rxvt_screen *screen, const char *name);
   bool set (rxvt_screen *screen, rxvt_rgba rgba);
 
   rxvt_color fade (rxvt_screen *screen, int percent); // fades to black
   rxvt_color fade (rxvt_screen *screen, int percent, rxvt_color &fadeto);
-
-  void free (rxvt_screen *screen);
 };
 
 #endif
index c215f99..81f869c 100644 (file)
@@ -2331,9 +2331,7 @@ rxvt_term::scr_refresh () NOTHROW
           rxvt_font *font = (*fontset[GET_STYLE (rend)])[GET_FONT (rend)];
 
           if (back == fore)
-            font->clear_rect (*drawable, xpixel, ypixel,
-                              fwidth * count, fheight,
-                              back);
+            font->clear_rect (*drawable, xpixel, ypixel, fwidth * count, fheight, back);
           else if (back == Color_bg)
             {
               if (must_clear)
index 0307899..9c38ee1 100644 (file)
@@ -1,3 +1,3 @@
 // VERSION _must_ be \d.\d+
 #define VERSION "7.5"
-#define DATE   "2006-01-30"
+#define DATE   "2006-01-31"