Fade overlay in and out
diff --git a/vncviewer/Surface_Win32.cxx b/vncviewer/Surface_Win32.cxx
index 87b0cb2..9400f53 100644
--- a/vncviewer/Surface_Win32.cxx
+++ b/vncviewer/Surface_Win32.cxx
@@ -89,13 +89,13 @@
   DeleteDC(dstdc);
 }
 
-void Surface::blend(int src_x, int src_y, int x, int y, int w, int h)
+void Surface::blend(int src_x, int src_y, int x, int y, int w, int h, int a)
 {
   // Compositing doesn't work properly for window DC:s
   assert(false);
 }
 
-void Surface::blend(Surface* dst, int src_x, int src_y, int x, int y, int w, int h)
+void Surface::blend(Surface* dst, int src_x, int src_y, int x, int y, int w, int h, int a)
 {
   HDC dstdc, srcdc;
   BLENDFUNCTION blend;
@@ -114,7 +114,7 @@
 
   blend.BlendOp = AC_SRC_OVER;
   blend.BlendFlags = 0;
-  blend.SourceConstantAlpha = 255;
+  blend.SourceConstantAlpha = a;
   blend.AlphaFormat = AC_SRC_ALPHA;
 
   if (!AlphaBlend(dstdc, x, y, w, h, srcdc, src_x, src_y, w, h, blend)) {