--- xcompmgr.ori.c	2004-08-30 21:40:15.755197856 +0200
+++ xcompmgr.c	2004-08-30 22:03:22.103440888 +0200
@@ -141,7 +141,7 @@
 #define WINDOW_TRANS	1
 #define WINDOW_ARGB	2
 
-#define TRANS_OPACITY	0.75
+#define OPAQUE	0xffffffff
 
 #define DEBUG_REPAINT 0
 #define DEBUG_EVENTS 0
@@ -715,7 +715,7 @@
 		{
 		    double	opacity = SHADOW_OPACITY;
 		    if (w->mode == WINDOW_TRANS)
-			opacity = opacity * TRANS_OPACITY;
+			opacity = opacity * ((double)w->opacity)/((double)OPAQUE);
 		    w->shadow = shadow_picture (dpy, opacity,
 						w->a.width + w->a.border_width * 2,
 						w->a.height + w->a.border_width * 2,
@@ -1854,6 +1854,8 @@
 		    {
 			w->opacity = get_opacity_prop(dpy, w, OPAQUE);
 			determine_mode(dpy, w);
+			w->shadow = None;
+			w->extents = win_extents(dpy, w);
 		    }
 		}
 		break;
