Hello,

As requested in the 'man fvwm2' page, I am reporting an effect
that I wish to create in fvwm, but seem able to do only with the
'RecaptureWindow' command (that is, 'RefreshWindow' does not
produce the desired effect).

I am currently running FVWM 2.5.16 (the latest unstable version,
at the time of this email).  In case it makes any difference,
it was compiled with PNG support, on an OpenBSD 3.7 machine.

The description of the effect is as follows:

I have set the Icon for my Aterm application to be the following
png file:

    http://www.gentoo.org/images/icons/l33t_TER_term.png

Note the transparency effect around the outside of the
circumference of the circle (that is, how there is a gradient
of transparency).  This transparency-gradient (for lack of a
better name) is where I believe the root of my problem lies.

Next, I used xv to put a nice picture on my root screen.
A nice big jpg photograph works best to reproduce this
problem -- something where there is not a great deal of
uniform colour.

The final piece of the puzzle is my "NiceDeiconify" function,
which is called whenever I click on an iconified window.
What follows are four versions of this function:
(Note that only _one_ version exists in my .fvwm2rc file at
a given time; I'm just writing all four out below for
comparison)

# Version 0 - The Vanilla Version
AddToFunc NiceDeiconify
+ I Iconify off
+ I All (CurrentPage Iconic) PlaceAgain Icon

# Version 1 - The "RefreshWindow" Version
AddToFunc NiceDeiconify
+ I Iconify off
+ I All (CurrentPage Iconic) PlaceAgain Icon
+ I All (CurrentPage Iconic) RefreshWindow

# Version 2 - The "Refresh" Version
AddToFunc NiceDeiconify
+ I Iconify off
+ I All (CurrentPage Iconic) PlaceAgain Icon
+ I Refresh

# Version 3 - The "RecaptureWindow" Version
AddToFunc NiceDeiconify
+ I Iconify off
+ I All (CurrentPage Iconic) PlaceAgain Icon
+ I All (CurrentPage Iconic) RecaptureWindow

Now, take the following steps to reproduce the error:

1) Open two aterms
2) Iconify both of them
3) Click on the first one that was iconified,
   thereby calling the "NiceDeiconify" function
   (this will cause the second icon to take the
    position that the first one just occupied)

If the "Refresh" version of NiceDeiconify is used,
everything works perfectly; however, the entire screen
flickers from the Refresh (this is unsightly).

If the "RecaptureWindow" version of NiceDeiconify is
used, everything works perfectly!

However, if the "RefreshWindow" version or
the Vanilla version of NiceDeiconify is used,
the remaining icon will look garbled.  Namely,
when the icon moves to take the place of the recently-
deiconified icon, the transparent parts of the icon are
not entirely redrawn.  The fully-transparent corners of
the png file I linked above _are_ redrawn.  However,
the "transparency-gradient" area of the png file is not
redrawn (that it, it looks as though it were sitting on
a different part of my background jpg file, even though
the icon has now moved).

The icon's transparency is not being completely recomputed
after the icon moves (as seen by the Vanilla version).
Similarly, the "RefreshWindow" command is not causing this
transparency to be recomputed.  However, "Refresh"
or "RecaptureWindow" is causing this transparency to be
recomputed.

I hope that this report can be of assistance to you.

Reply via email to