--- button.cc.old	Sat Jul 31 03:43:13 1999
+++ button.cc	Fri Sep 10 22:35:11 1999
@@ -21,11 +21,13 @@
   // initialize state
   state = NORMAL;
 
-  attributes.background_pixel = ButtonColor.pixel;
+//   attributes.background_pixel = ButtonColor.pixel;
+  attributes.background_pixmap = ParentRelative;
   attributes.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask |
                           EnterWindowMask | LeaveWindowMask |
                           PointerMotionMask ;
-  valueMask = CWBackPixel | CWEventMask;
+//   valueMask = CWBackPixel | CWEventMask;
+  valueMask = CWBackPixmap | CWEventMask;
 
   frame = XCreateWindow(display, parent,
 			rc.x, rc.y, rc.width, rc.height, 0,
--- dialog.cc.old	Sat Jul 31 02:58:13 1999
+++ dialog.cc	Tue Sep 21 15:55:43 1999
@@ -1,3 +1,4 @@
+#include <unistd.h>
 #include <string.h>
 #include <sys/time.h>
 #include <X11/Xlib.h>
--- frame.cc.old	Sat Jul 31 18:07:02 1999
+++ frame.cc	Tue Sep 21 16:15:20 1999
@@ -29,8 +29,10 @@
   attributes.event_mask = SubstructureRedirectMask | ButtonPressMask |
                           ButtonReleaseMask | EnterWindowMask |
 			  LeaveWindowMask | ExposureMask;
-  attributes.background_pixel = FrameColor.pixel;
-  valueMask = CWBackPixel | CWEventMask;
+//   attributes.background_pixel = FrameColor.pixel;
+//   valueMask = CWBackPixel | CWEventMask;
+  attributes.background_pixmap = ParentRelative;
+  valueMask = CWBackPixmap | CWEventMask;
 
   ASSERT(paging);
 
@@ -62,8 +64,10 @@
   attributes.event_mask = SubstructureRedirectMask | ButtonPressMask |
                           ButtonReleaseMask | EnterWindowMask |
 			  LeaveWindowMask | ExposureMask;
-  attributes.background_pixel = darkGray.pixel;
-  valueMask = CWBackPixel | CWEventMask;
+//   attributes.background_pixel = darkGray.pixel;
+//   valueMask = CWBackPixel | CWEventMask;
+  attributes.background_pixmap = ParentRelative;
+  valueMask = CWBackPixmap | CWEventMask;
 
   parent = XCreateWindow(display, frame,
 			 rect.x, rect.y, rect.width, rect.height,
@@ -84,14 +88,14 @@
   attributes.event_mask = ButtonPressMask | ButtonReleaseMask | ExposureMask |
                           EnterWindowMask | LeaveWindowMask |
 			  Button1MotionMask | Button2MotionMask;
-  attributes.background_pixel = darkGray.pixel;
+//   attributes.background_pixel = darkGray.pixel;
 
   for (int i = 0; i < 4; i++) {
     side[i] = XCreateWindow(display, frame,
 			    rect[i].x, rect[i].y,
 			    rect[i].width, rect[i].height,
 			    0, CopyFromParent, InputOnly, CopyFromParent,
-			    CWEventMask, &attributes);
+				CWEventMask, &attributes);
     XSaveContext(display, side[i], context, (caddr_t)this);
   }
 
@@ -116,7 +120,7 @@
   attributes.event_mask = ButtonPressMask | ButtonReleaseMask | ExposureMask |
                           EnterWindowMask | LeaveWindowMask |
 			  Button1MotionMask | Button2MotionMask;
-  attributes.background_pixel = darkGray.pixel;
+//   attributes.background_pixel = darkGray.pixel;
 
   for (int i = 0; i < 4; i++) {
     corner[i] = XCreateWindow(display, frame,
@@ -149,7 +153,7 @@
 
       if (FrameActiveImage)
 	imgActiveFrm->SetBackground(frame);
-      else
+      else if (!Transparent)
 	XSetWindowBackground(display, frame, FrameActiveColor.pixel);
     }
     else {
@@ -158,7 +162,7 @@
 
       if (FrameImage)
 	imgFrm->SetBackground(frame);
-      else
+      else if (!Transparent)
 	XSetWindowBackground(display, frame, FrameColor.pixel);
     }
   }
@@ -190,28 +194,31 @@
     
     XSetForeground(display, gc, black.pixel);
     XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
+
+    if (!Transparent) {
+	xp[0].x = rc.width - 3;
+	xp[0].y = 1;
+	xp[1].x = 1;
+	xp[1].y = 1;
+	xp[2].x = 1;
+	xp[2].y = rc.height - 3;
     
-    xp[0].x = rc.width - 3;
-    xp[0].y = 1;
-    xp[1].x = 1;
-    xp[1].y = 1;
-    xp[2].x = 1;
-    xp[2].y = rc.height - 3;
+	XSetForeground(display, gc, white.pixel);
+	XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
     
-    XSetForeground(display, gc, white.pixel);
-    XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
-    
-    xp[0].x = rc.width - 2;
-    xp[0].y = 1;
-    xp[1].x = rc.width - 2;
-    xp[1].y = rc.height - 2;
-    xp[2].x = 1;
-    xp[2].y = rc.height - 2;
+	xp[0].x = rc.width - 2;
+	xp[0].y = 1;
+	xp[1].x = rc.width - 2;
+	xp[1].y = rc.height - 2;
+	xp[2].x = 1;
+	xp[2].y = rc.height - 2;
     
-    XSetForeground(display, gc, darkGray.pixel);
-    XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
+	XSetForeground(display, gc, darkGray.pixel);
+	XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
+    }
   }
 
+  if (!Transparent)
   if (CheckFlags(BORDER_EDGE)) {
     xp[0].x = rc.width - borderWidth;
     xp[0].y = topBorder + titleHeight + 1;
@@ -253,6 +260,43 @@
     XSetForeground(display, gc, lightGray.pixel);
     XDrawLines(display, frame, gc, xp, 3, CoordModeOrigin);
   }
+}
+
+/*
+ * UpdateFrame --
+ *   Draw frame window.
+ */
+void Qvwm::UpdateFrame()
+{
+  int borderWidth, topBorder, titleHeight, titleEdge;
+
+  GetBorderAndTitle(borderWidth, topBorder, titleHeight, titleEdge);
+
+  // ¥¿¥¤¥È¥ë¾åÉô.
+  XClearArea(display, frame,
+	     1, 1,
+	     rc.width - 3, topBorder - 1,
+	     False);
+  // ¥¿¥¤¥È¥ë²¼Éô.
+  XClearArea(display, frame,
+	     1, topBorder + titleHeight,
+	     rc.width - 2, topBorder,
+	     False);
+  // ²¼Ã¼.
+  XClearArea(display, frame,
+	     1, rc.height - borderWidth,
+	     rc.width - 2, borderWidth - 1,
+	     False);
+  // º¸Ã¼.
+  XClearArea(display, frame,
+	     1, 1,
+	     borderWidth, rc.height - 2,
+	     False);
+  // ±¦Ã¼.
+  XClearArea(display, frame,
+	     rc.width - borderWidth, 1,
+	     borderWidth - 1, rc.height - 2,
+	     False);
 }
 
 /*
--- move.cc.old	Sun May 23 00:06:59 1999
+++ move.cc	Tue Sep 21 16:16:24 1999
@@ -149,6 +149,10 @@
 
       if (OpaqueMove) {
 	XMoveWindow(display, frame, rcShown.x, rcShown.y);
+	if (Transparent && OpaqueFrame) {
+	  UpdateFrame();
+// 	  DrawFrame(False);
+	}
 	if (UsePager) {
 	  Point pt(rcShown.x + paging->origin.x, rcShown.y + paging->origin.y);
 
--- pager.cc.old	Sat Jul 31 02:06:05 1999
+++ pager.cc	Fri Sep 10 17:50:55 1999
@@ -41,10 +41,12 @@
   /*
    * Create the frame window for pager.
    */
-  attributes.background_pixel = PagerColor.pixel;
+//   attributes.background_pixel = PagerColor.pixel;
+  attributes.background_pixmap = ParentRelative;
   attributes.override_redirect = True;
   attributes.event_mask = ExposureMask;
-  valueMask = CWBackPixel | CWEventMask | CWOverrideRedirect;
+//   valueMask = CWBackPixel | CWEventMask | CWOverrideRedirect;
+  valueMask = CWBackPixmap | CWEventMask | CWOverrideRedirect;
   
   frame = XCreateWindow(display, root,
 			rc.x, rc.y, rc.width, rc.height,
@@ -72,9 +74,11 @@
   /*
    * Create the window for the miniature of whole virtual screen.
    */
-  attributes.background_pixel = PagerColor.pixel;
+//   attributes.background_pixel = PagerColor.pixel;
+  attributes.background_pixmap = ParentRelative;
   attributes.event_mask = ButtonPressMask | ExposureMask;
-  valueMask = CWBackPixel | CWEventMask;
+//   valueMask = CWBackPixel | CWEventMask;
+  valueMask = CWBackPixmap | CWEventMask;
   
   pages = XCreateWindow(display, frame,
 			BORDER_WIDTH, TITLE_HEIGHT + BORDER_WIDTH + 1,
--- qvwm.h.old	Sat Jul 31 04:03:58 1999
+++ qvwm.h	Sat Sep 11 11:06:37 1999
@@ -209,6 +209,7 @@
 #endif
 
   void DrawFrame(Bool focusChange);
+  void UpdateFrame();
   void RecalcWindow();
   void RedrawWindow(Bool delay = False);
   void CalcWindowPos(const Rect& base);
--- qvwmrc.cc.old	Sat Jul 31 03:34:24 1999
+++ qvwmrc.cc	Sat Sep 11 11:04:47 1999
@@ -14,6 +14,8 @@
 /*
  * Default values
  */
+Bool Transparent		    = True;
+Bool OpaqueFrame		    = True;
 int DoubleClickTime		    = 400;
 int DoubleClickRange		    = 5;
 Bool TitlebarMotion		    = True;
--- qvwmrc.h.old	Sat Jul 31 03:34:28 1999
+++ qvwmrc.h	Sat Sep 11 11:05:21 1999
@@ -20,6 +20,8 @@
 class ShortCutKey;
 struct SCKeyEntry;
 
+extern Bool Transparent;
+extern Bool OpaqueFrame;
 extern int DoubleClickTime;
 extern int DoubleClickRange;
 extern Bool TitlebarMotion;
--- taskbar.cc.old	Sat Jul 31 03:47:34 1999
+++ taskbar.cc	Tue Sep 21 16:31:13 1999
@@ -82,12 +82,14 @@
   /*
    * Create taskbar.
    */
-  attributes.background_pixel = TaskbarColor.pixel;
+//   attributes.background_pixel = TaskbarColor.pixel;
+  attributes.background_pixmap = ParentRelative;
   attributes.override_redirect = True;
   attributes.event_mask = ExposureMask | ButtonPressMask |
                           ButtonReleaseMask | Button1MotionMask |
 			  EnterWindowMask | LeaveWindowMask;
-  valueMask = CWBackPixel | CWOverrideRedirect | CWEventMask;
+//   valueMask = CWBackPixel | CWOverrideRedirect | CWEventMask;
+  valueMask = CWBackPixmap | CWOverrideRedirect | CWEventMask;
 
   frame = XCreateWindow(display, root,
 			-10, -10, 10, 10,
@@ -96,9 +98,11 @@
 
   attributes.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask |
                           Button1MotionMask;
-  attributes.background_pixel = TaskbarColor.pixel;
+//   attributes.background_pixel = TaskbarColor.pixel;
+  attributes.background_pixmap = ParentRelative;
   attributes.cursor = cursor[SYS];
-  valueMask = CWBackPixel | CWCursor | CWEventMask;
+//   valueMask = CWBackPixel | CWCursor | CWEventMask;
+  valueMask = CWBackPixmap | CWCursor | CWEventMask;
 
   w = XCreateWindow(display, frame,
 		    0, 0, 10, 10,
@@ -148,6 +152,31 @@
 
   delete toolTip;
 }
+Rect Taskbar::GetRect()
+const{
+	Rect	r = rc[pos];
+	if(TaskbarAutoHide) {
+// 		switch(pos) {
+// 		case BOTTOM:
+// 			r.y = -2;
+// 			break;
+// 		case RIGHT:
+// 			r.x = -2;
+// 			break;
+// 		}
+		switch(pos) {
+		case BOTTOM:
+		case TOP:
+			r.height = 0;
+			break;
+		case LEFT:
+		case RIGHT:
+			r.width = 0;
+			break;
+		}
+	}
+	return r;
+}
 
 /*
  * MapTaskbar --
@@ -987,6 +1016,8 @@
       XMoveWindow(display, frame,
 		  rc[pos].x + (pt.x - rc[pos].x) * i / GradTaskbarMotionSpeed,
 		  rc[pos].y + (pt.y - rc[pos].y) * i / GradTaskbarMotionSpeed);
+	  if( Transparent)
+		  XClearWindow(display, w);
     }
   }
   else
--- taskbar.h.old	Sat Jul 31 01:46:45 1999
+++ taskbar.h	Tue Sep  7 16:53:55 1999
@@ -52,7 +52,7 @@
   Taskbar(Qvwm* qvWm, int width, unsigned int rows);
   ~Taskbar();
   Window GetFrameWin() const { return frame; }
-  Rect GetRect() const { return rc[pos]; }
+  Rect GetRect() const;
   TaskbarPos GetPos() const { return pos; }
   Bool IsTaskbarWindows(Window win);
   Bool CheckMenuMapped() const { return ctrlMenu->CheckMapped(); }
--- ver.h.old	Sun Jul 18 21:14:33 1999
+++ ver.h	Tue Sep 21 17:04:48 1999
@@ -1,6 +1,6 @@
 #ifndef _VER_H_
 #define _VER_H_
 
-const char* Version = "1.1";
+const char* Version = "1.1-transparent";
 
 #endif // _VER_H_
