--- gdkwindow-win32.c.orig	Tue Jul  6 12:41:40 2004
+++ gdkwindow-win32.c	Tue Jul  6 12:41:40 2004
@@ -386,7 +386,11 @@
   wcl.hIcon = CopyIcon (hAppIcon); \
   wcl.hIconSm = CopyIcon (hAppIcon); \
   wcl.hbrBackground = NULL; \
-  wcl.hCursor = LoadCursor (NULL, IDC_ARROW); 
+  wcl.hCursor = LoadCursor (NULL, IDC_ARROW);
+
+#ifndef CS_DROPSHADOW
+#  define CS_DROPSHADOW 0x00020000
+#endif
   
   switch (wtype)
     {
@@ -428,7 +432,7 @@
       if (0 == klassTEMP)
 	{
 	  wcl.lpszClassName = "gdkWindowTemp";
-	  wcl.style |= CS_SAVEBITS;
+	  wcl.style |= CS_SAVEBITS | CS_DROPSHADOW;
 	  ONCE_PER_CLASS();
 	  klassTEMP = RegisterClassEx (&wcl);
 	}
@@ -448,10 +452,11 @@
   return klass;
 }
 
-GdkWindow*
-gdk_window_new (GdkWindow     *parent,
+static GdkWindow*
+gdk_window_new_internal (GdkWindow     *parent,
 		GdkWindowAttr *attributes,
-		gint           attributes_mask)
+		gint           attributes_mask,
+		gboolean       from_set_skip_taskbar_hint)
 {
   HANDLE hparent;
   ATOM klass = 0;
@@ -586,7 +591,7 @@
       dwStyle = WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
       /* a temp window is not necessarily a top level window */
       dwStyle |= (_gdk_parent_root == parent ? WS_POPUP : WS_CHILDWINDOW);
-      dwExStyle |= WS_EX_TOOLWINDOW;
+      dwExStyle |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
       offset_x = _gdk_offset_x;
       offset_y = _gdk_offset_y;
       break;
@@ -720,6 +725,11 @@
   gdk_win32_handle_table_insert (&GDK_WINDOW_HWND (window), window);
 #endif
 
+  if (!from_set_skip_taskbar_hint
+	  && private->window_type == GDK_WINDOW_TEMP
+	  && _gdk_parent_root == parent) {
+	  gdk_window_set_skip_taskbar_hint (window, TRUE);
+  }
   gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
 				  (attributes->cursor) :
 				  NULL));
@@ -727,6 +737,14 @@
   return window;
 }
 
+GdkWindow*
+gdk_window_new (GdkWindow     *parent,
+		GdkWindowAttr *attributes,
+		gint           attributes_mask)
+{
+	return gdk_window_new_internal (parent, attributes, attributes_mask, FALSE);
+}
+
 GdkWindow *
 gdk_window_foreign_new_for_display (GdkDisplay      *display,
                                     GdkNativeWindow  anid)
@@ -3073,7 +3091,7 @@
 	  wa.wclass = GDK_INPUT_OUTPUT;
 	  wa.width = wa.height = 1;
 	  wa.event_mask = 0;
-	  owner = gdk_window_new (NULL, &wa, 0);
+	  owner = gdk_window_new_internal (NULL, &wa, 0, TRUE);
 	}
 
       SetWindowLong (GDK_WINDOW_HWND (window), GWL_HWNDPARENT,
