diff -u -r gtk+-2.14.7/gdk/directfb/gdkcolor-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkcolor-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkcolor-directfb.c	2009-01-11 01:03:50.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkcolor-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -213,35 +213,35 @@
       GdkVisual *visual = gdk_visual_get_system();
 
       /* special case PSEUDO_COLOR to use the system palette */
-//      if (visual->type == GDK_VISUAL_PSEUDO_COLOR)
-//        {
-//          GdkColormapPrivateDirectFB *private;
-//          IDirectFBSurface           *surface;
-//
-//          colormap = g_object_new (gdk_colormap_get_type (), NULL);
-//
-//          colormap->visual = visual;
-//          colormap->size   = visual->colormap_size;
-//         colormap->colors = g_new0 (GdkColor, colormap->size);
-//
-//          private = g_new0 (GdkColormapPrivateDirectFB, 1);
-//          private->info = g_new0 (GdkColorInfo, colormap->size);
-//	
-//          surface=GDK_WINDOW_IMPL_DIRECTFB (
-//				GDK_WINDOW_OBJECT (_gdk_parent_root)->impl)->drawable.surface;
-//          surface->GetPalette (surface, &private->palette);
-//
-//          colormap->windowing_data = private;
-//
-//          /* save the first (transparent) palette entry */
-//          private->info[0].ref_count++;
-//
-    //      gdk_directfb_allocate_color_key (colormap);
-    //    }
-    //  else
-    //    {
+      if (visual->type == GDK_VISUAL_PSEUDO_COLOR)
+        {
+          GdkColormapPrivateDirectFB *private;
+          IDirectFBSurface           *surface;
+
+          colormap = g_object_new (gdk_colormap_get_type (), NULL);
+
+          colormap->visual = visual;
+          colormap->size   = visual->colormap_size;
+          colormap->colors = g_new0 (GdkColor, colormap->size);
+
+          private = g_new0 (GdkColormapPrivateDirectFB, 1);
+          private->info = g_new0 (GdkColorInfo, colormap->size);
+	
+          surface=GDK_WINDOW_IMPL_DIRECTFB (
+				GDK_WINDOW_OBJECT (_gdk_parent_root)->impl)->drawable.surface;
+          surface->GetPalette (surface, &private->palette);
+
+          colormap->windowing_data = private;
+
+          /* save the first (transparent) palette entry */
+          private->info[0].ref_count++;
+
+          gdk_directfb_allocate_color_key (colormap);
+        }
+      else
+        {
           colormap = gdk_colormap_new (visual, FALSE);
-    //    }
+        }
     }
 
   return colormap;
diff -u -r gtk+-2.14.7/gdk/directfb/gdkdisplay-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkdisplay-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkdisplay-directfb.c	2009-01-11 01:02:28.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkdisplay-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -130,7 +130,7 @@
   _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL);
 
   _gdk_visual_init ();
-  
+
   gdk_screen_set_default_colormap (_gdk_screen,
                                    gdk_screen_get_system_colormap (_gdk_screen));
   _gdk_windowing_window_init ();
diff -u -r gtk+-2.14.7/gdk/directfb/gdkdnd-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkdnd-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkdnd-directfb.c	2009-01-10 19:51:05.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkdnd-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -251,9 +251,9 @@
 
   new_context->targets = g_list_copy (context->targets);
 
-  gdk_window_directfb_set_events (new_context->source_window,
-								 gdk_window_directfb_get_events (new_context->source_window) |
-								 GDK_PROPERTY_CHANGE_MASK);
+  gdk_window_set_events (new_context->source_window,
+			 gdk_window_get_events (new_context->source_window) |
+			 GDK_PROPERTY_CHANGE_MASK);
   new_context->actions = context->actions;
 
   event.dnd.type       = GDK_DRAG_ENTER;
diff -u -r gtk+-2.14.7/gdk/directfb/gdkevents-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkevents-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkevents-directfb.c	2009-01-10 19:51:05.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkevents-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -584,7 +584,7 @@
         if (dfbevent->type == DWET_BUTTONDOWN  &&  !click_grab  &&  child)
           {
             if (gdk_directfb_pointer_grab (child, FALSE,
-                                           gdk_window_directfb_get_events (child),
+                                           gdk_window_get_events (child),
                                            NULL, NULL,
                                            GDK_CURRENT_TIME,
                                            TRUE) == GDK_GRAB_SUCCESS)
@@ -795,7 +795,7 @@
         /* this makes sure pointer is set correctly when it previously left
          * a window being not standard shaped
          */
-        gdk_window_directfb_set_cursor (window, NULL);
+        gdk_window_set_cursor (window, NULL);
         gdk_directfb_window_send_crossing_events (NULL, child,
                                                   GDK_CROSSING_NORMAL);
 
diff -u -r gtk+-2.14.7/gdk/directfb/gdkgeometry-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkgeometry-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkgeometry-directfb.c	2009-01-10 19:51:05.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkgeometry-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -41,7 +41,7 @@
 
 
 void
-_gdk_window_directfb_get_offsets (GdkWindow *window,
+_gdk_windowing_window_get_offsets (GdkWindow *window,
                                    gint      *x_offset,
                                    gint      *y_offset)
 {
@@ -58,8 +58,18 @@
   return FALSE;
 }
 
+/**
+ * gdk_window_scroll:
+ * @window: a #GdkWindow
+ * @dx: Amount to scroll in the X direction
+ * @dy: Amount to scroll in the Y direction
+ *
+ * Scroll the contents of its window, both pixels and children, by
+ * the given amount. Portions of the window that the scroll operation
+ * brings in from offscreen areas are invalidated.
+ **/
 void
-_gdk_window_directfb_scroll (GdkWindow *window,
+gdk_window_scroll (GdkWindow *window,
                    gint       dx,
                    gint       dy)
 {
@@ -135,11 +145,26 @@
     }
 }
 
+/**
+ * gdk_window_move_region:
+ * @window: a #GdkWindow
+ * @region: The #GdkRegion to move
+ * @dx: Amount to move in the X direction
+ * @dy: Amount to move in the Y direction
+ * 
+ * Move the part of @window indicated by @region by @dy pixels in the Y 
+ * direction and @dx pixels in the X direction. The portions of @region 
+ * that not covered by the new position of @region are invalidated.
+ * 
+ * Child windows are not moved.
+ * 
+ * Since: 2.8
+ **/
 void
-_gdk_window_directfb_move_region (GdkWindow       *window,
-							    const GdkRegion *region,
-							    gint             dx,
-							    gint             dy)
+gdk_window_move_region (GdkWindow       *window,
+                        const GdkRegion *region,
+                        gint             dx,
+                        gint             dy)
 {
   GdkWindowObject         *private;
   GdkDrawableImplDirectFB *impl;
diff -u -r gtk+-2.14.7/gdk/directfb/gdkwindow-directfb.c gtk+-2.14.7.ori/gdk/directfb/gdkwindow-directfb.c
--- gtk+-2.14.7/gdk/directfb/gdkwindow-directfb.c	2009-01-11 23:40:13.000000000 +0100
+++ gtk+-2.14.7.ori/gdk/directfb/gdkwindow-directfb.c	2009-01-07 17:33:47.000000000 +0100
@@ -34,7 +34,6 @@
 #include "config.h"
 #include "gdk.h"
 #include "gdkwindow.h"
-#include "gdkwindowimpl.h"
 
 #include "gdkdirectfb.h"
 #include "gdkprivate-directfb.h"
@@ -68,20 +67,6 @@
 static void gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass);
 static void gdk_window_impl_directfb_finalize   (GObject                    *object);
 
-
-void gdk_window_directfb_hide (GdkWindow *window);
-GdkEventMask gdk_window_directfb_get_events (GdkWindow *window);
-void gdk_window_directfb_set_events (GdkWindow    *window, GdkEventMask  event_mask);
-void gdk_window_directfb_set_cursor (GdkWindow *window, GdkCursor *cursor);
-gboolean gdk_window_directfb_get_origin (GdkWindow *window, gint *x, gint *y);
-void gdk_window_directfb_raise (GdkWindow *window);
-void gdk_window_directfb_move_resize (GdkWindow *window, gboolean with_move, gint x, gint y, gint width, gint height);
-void gdk_window_directfb_clear_area (GdkWindow *window, gint x, gint y, gint width, gint height, gboolean send_expose_is_unusedfornow);
-
-void _gdk_window_directfb_scroll (GdkWindow *window, gint dx, gint dy);
-void _gdk_window_directfb_get_offsets (GdkWindow *window, gint *x_offset, gint *y_offset);
-void _gdk_window_directfb_move_region (GdkWindow *window, const GdkRegion *region, gint dx, gint dy);
-
 typedef struct
 {
   GdkWindowChildChanged  changed;
@@ -114,19 +99,20 @@
   while (tmp_list)
     {
       GdkWindowObject       *private = GDK_WINDOW_OBJECT( tmp_list->data );
-      GdkWindowImplDirectFB *impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
+      GdkWindowImplDirectFB *wimpl   = GDK_WINDOW_IMPL_DIRECTFB( private->impl );
+      
       if (private->update_freeze_count)
         {
           D_DEBUG_AT( GDKDFB_Updates, "  -> %p frozen [%4d,%4d-%4dx%4d] (%d boxes)\n",
-                      private, DFB_RECTANGLE_VALS_FROM_REGION( &impl->flips.bounding ),
-                      impl->flips.num_regions );
+                      private, DFB_RECTANGLE_VALS_FROM_REGION( &wimpl->flips.bounding ),
+                      wimpl->flips.num_regions );
           update_windows = g_slist_prepend (update_windows, private);
         }
       else
         {
           D_DEBUG_AT( GDKDFB_Updates, "  -> %p update [%4d,%4d-%4dx%4d] (%d boxes)\n",
-                      private, DFB_RECTANGLE_VALS_FROM_REGION( &impl->flips.bounding ),
-                      impl->flips.num_regions );
+                      private, DFB_RECTANGLE_VALS_FROM_REGION( &wimpl->flips.bounding ),
+                      wimpl->flips.num_regions );
           gdk_window_process_updates(tmp_list->data,TRUE);
         }
       
@@ -202,7 +188,9 @@
 GdkWindow * _gdk_parent_root = NULL;
 static void
 gdk_window_impl_directfb_paintable_init (GdkPaintableIface *iface);
-static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
+
+
+
 
 
 GType
@@ -213,40 +201,32 @@
   if (!object_type)
     {
       static const GTypeInfo object_info =
-      {
-        sizeof (GdkWindowImplDirectFBClass),
-        (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-        (GClassInitFunc) gdk_window_impl_directfb_class_init,
-        NULL,           /* class_finalize */
-        NULL,           /* class_data */
-        sizeof (GdkWindowImplDirectFB),
-        0,              /* n_preallocs */
-        (GInstanceInitFunc) gdk_window_impl_directfb_init,
-      };
+        {
+          sizeof (GdkWindowImplDirectFBClass),
+          (GBaseInitFunc) NULL,
+          (GBaseFinalizeFunc) NULL,
+          (GClassInitFunc) gdk_window_impl_directfb_class_init,
+          NULL,           /* class_finalize */
+          NULL,           /* class_data */
+          sizeof (GdkWindowImplDirectFB),
+          0,              /* n_preallocs */
+          (GInstanceInitFunc) gdk_window_impl_directfb_init,
+        };
 
-      static const GInterfaceInfo paintable_info =
-      {
-        (GInterfaceInitFunc) gdk_window_impl_directfb_paintable_init,
-        NULL,
-        NULL
-      };
-      static const GInterfaceInfo window_info =
+    static const GInterfaceInfo paintable_info =
       {
-        (GInterfaceInitFunc) gdk_window_impl_iface_init,
-        NULL,
-        NULL
+    (GInterfaceInitFunc) gdk_window_impl_directfb_paintable_init,
+    NULL,
+    NULL
       };
 
       object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
                                             "GdkWindowImplDirectFB",
                                             &object_info, 0);
-      g_type_add_interface_static (object_type,
+       g_type_add_interface_static (object_type,
                    GDK_TYPE_PAINTABLE,
                    &paintable_info);
-      g_type_add_interface_static (object_type,
-                   GDK_TYPE_WINDOW_IMPL,
-                   &window_info);
+
     }
 
   return object_type;
@@ -306,7 +286,7 @@
   D_DEBUG_AT( GDKDFB_Window, "%s( %p ) <- %dx%d\n", __FUNCTION__, impl, impl->drawable.width, impl->drawable.height );
 
   if (GDK_WINDOW_IS_MAPPED (impl->drawable.wrapper))
-    gdk_window_directfb_hide (impl->drawable.wrapper);
+    gdk_window_hide (impl->drawable.wrapper);
 
   if (impl->cursor)
     gdk_cursor_unref (impl->cursor);
@@ -426,8 +406,6 @@
 
   _gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL);
   private = GDK_WINDOW_OBJECT (_gdk_parent_root);
-  private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  D_DEBUG_AT( GDKDFB_Window, "DFB:%s:allocating window impl\n", __FUNCTION__);
   impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
 
   private->window_type = GDK_WINDOW_ROOT;
@@ -497,9 +475,7 @@
 
   window = g_object_new (GDK_TYPE_WINDOW, NULL);
   private = GDK_WINDOW_OBJECT (window);
-  private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  D_DEBUG_AT( GDKDFB_Window, "DFB:%s:allocating window impl\n", __FUNCTION__);
-  
+
   parent_private = GDK_WINDOW_OBJECT (parent);
   parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
   private->parent = parent_private;
@@ -507,7 +483,7 @@
   x = (attributes_mask & GDK_WA_X) ? attributes->x : 0;
   y = (attributes_mask & GDK_WA_Y) ? attributes->y : 0;
 
-  gdk_window_directfb_set_events (window, attributes->event_mask | GDK_STRUCTURE_MASK);
+  gdk_window_set_events (window, attributes->event_mask | GDK_STRUCTURE_MASK);
 
   impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
   impl->drawable.wrapper = GDK_DRAWABLE (window);
@@ -646,7 +622,7 @@
   	  private->depth = visual->depth;
     }
 
-  gdk_window_directfb_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
+  gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
                                   (attributes->cursor) : NULL));
 
   if (parent_private)
@@ -1041,7 +1017,7 @@
       event = gdk_directfb_event_make (event_win, GDK_LEAVE_NOTIFY);
       event->crossing.subwindow = NULL;
 
-      gdk_window_directfb_get_origin (a, &x_int, &y_int);
+      gdk_window_get_origin (a, &x_int, &y_int);
 
       event->crossing.x      = x - x_int;
       event->crossing.y      = y - y_int;
@@ -1081,7 +1057,7 @@
 
               event->crossing.subwindow = g_object_ref (last);
 
-              gdk_window_directfb_get_origin (win, &x_int, &y_int);
+              gdk_window_get_origin (win, &x_int, &y_int);
 
               event->crossing.x      = x - x_int;
               event->crossing.y      = y - y_int;
@@ -1139,7 +1115,7 @@
 
               event->crossing.subwindow = g_object_ref (next);
 
-              gdk_window_directfb_get_origin (win, &x_int, &y_int);
+              gdk_window_get_origin (win, &x_int, &y_int);
 
               event->crossing.x      = x - x_int;
               event->crossing.y      = y - y_int;
@@ -1172,7 +1148,7 @@
 
       event->crossing.subwindow = NULL;
 
-      gdk_window_directfb_get_origin (b, &x_int, &y_int);
+      gdk_window_get_origin (b, &x_int, &y_int);
 
       event->crossing.x      = x - x_int;
       event->crossing.y      = y - y_int;
@@ -1209,7 +1185,8 @@
 }
 
 static void
-gdk_window_directfb_show (GdkWindow *window, gboolean raise)
+show_window_internal (GdkWindow *window,
+                      gboolean   raise)
 {
   GdkWindowObject       *private;
   GdkWindowImplDirectFB *impl;
@@ -1225,7 +1202,7 @@
       private->state &= ~GDK_WINDOW_STATE_WITHDRAWN;
 
       if (raise)
-        gdk_window_directfb_raise (window);
+        gdk_window_raise (window);
 
       if (all_parents_shown (GDK_WINDOW_OBJECT (private)->parent))
         {
@@ -1254,27 +1231,27 @@
 }
 
 void
-_gdk_window_show_unraised (GdkWindow *window)
+gdk_window_show_unraised (GdkWindow *window)
 {
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", __FUNCTION__, window );
 
-  gdk_window_directfb_show (window, FALSE);
+  show_window_internal (window, FALSE);
 }
 
 void
-_gdk_window_directfb_show_raised (GdkWindow *window)
+gdk_window_show (GdkWindow *window)
 {
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", __FUNCTION__, window );
 
-  gdk_window_directfb_show (window, TRUE);
+  show_window_internal (window, TRUE);
 }
 
 void
-gdk_window_directfb_hide (GdkWindow *window)
+gdk_window_hide (GdkWindow *window)
 {
   GdkWindowObject       *private;
   GdkWindowImplDirectFB *impl;
@@ -1299,11 +1276,11 @@
 
       if (!private->input_only && private->parent)
         {
-          gdk_window_directfb_clear_area (GDK_WINDOW (private->parent),
+          _gdk_windowing_window_clear_area (GDK_WINDOW (private->parent),
                                             private->x,
                                             private->y,
                                             impl->drawable.width,
-                                            impl->drawable.height, TRUE);
+                                            impl->drawable.height);
         }
 
       event_win = gdk_directfb_other_event_window (window, GDK_UNMAP);
@@ -1323,18 +1300,18 @@
 }
 
 void
-gdk_window_directfb_withdraw (GdkWindow *window)
+gdk_window_withdraw (GdkWindow *window)
 {
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   /* for now this should be enough */
-  gdk_window_directfb_hide (window);
+  gdk_window_hide (window);
 }
 
 void
-gdk_window_directfb_move (GdkWindow *window,
-				         gint       x,
-				         gint       y)
+gdk_window_move (GdkWindow *window,
+                 gint       x,
+                 gint       y)
 {
   GdkWindowObject       *private;
   GdkWindowImplDirectFB *impl;
@@ -1377,9 +1354,9 @@
 }
 
 void
-gdk_window_directfb_resize (GdkWindow *window,
-				           gint       width,
-				           gint       height)
+gdk_window_resize (GdkWindow *window,
+                   gint       width,
+                   gint       height)
 {
   GdkWindowObject *private;
   gint             x, y;
@@ -1402,7 +1379,7 @@
 	(*data->get_pos) (window, &x, &y, data->user_data);
     }
 
-  gdk_window_directfb_move_resize (window, TRUE, x, y, width, height);
+  gdk_window_move_resize (window, x, y, width, height);
 }
 
 void
@@ -1463,12 +1440,11 @@
 }
 
 void
-gdk_window_directfb_move_resize (GdkWindow *window,
-	                            gboolean   with_move,
-					            gint       x,
-					            gint       y,
-					            gint       width,
-					            gint       height)
+gdk_window_move_resize (GdkWindow *window,
+                        gint       x,
+                        gint       y,
+                        gint       width,
+                        gint       height)
 {
   GdkWindowObject       *private;
   GdkWindowImplDirectFB *impl;
@@ -1502,33 +1478,27 @@
 
   if (impl->drawable.width == width  &&  impl->drawable.height == height)
     {
-      if(with_move)
-		gdk_window_directfb_move (window, x, y);
+      gdk_window_move (window, x, y);
     }
   else if (impl->window)
     {
   	  private->x = x;
   	  private->y = y;
-      if(with_move)
-		impl->window->MoveTo (impl->window, x, y);
+      impl->window->MoveTo (impl->window, x, y);
       impl->window->Resize (impl->window, width, height);
     }
   else
     {
-      GdkRectangle old = { private->x, private->y, impl->drawable.width, impl->drawable.height };
-      GdkRectangle new = { x, y, width, height };
-	  if(!with_move) 
-	  {
-		  new.x = private->x;
-  		  new.y = private->y;
-	  }
-	  _gdk_directfb_move_resize_child (window, new.x, new.y, new.width, new.height);
+      GdkRectangle  old =
+      { private->x, private->y, impl->drawable.width, impl->drawable.height };
+      _gdk_directfb_move_resize_child (window, x, y, width, height);
       _gdk_directfb_calc_abs (window);
 
       if (GDK_WINDOW_IS_MAPPED (private))
         {
           GdkWindow    *mousewin;
-          
+          GdkRectangle  new = { x, y, width, height };
+
           gdk_rectangle_union (&new, &old, &new);
           gdk_window_invalidate_rect (GDK_WINDOW (private->parent), &new,TRUE);
 
@@ -1540,11 +1510,11 @@
     }
 }
 
-gboolean
-gdk_window_directfb_reparent (GdkWindow *window,
-					         GdkWindow *new_parent,
-					         gint       x,
-					         gint       y)
+void
+_gdk_window_reparent (GdkWindow *window,
+                     GdkWindow *new_parent,
+                     gint       x,
+                     gint       y)
 {
   GdkWindowObject *window_private;
   GdkWindowObject *parent_private;
@@ -1553,10 +1523,10 @@
   GdkWindowImplDirectFB *parent_impl;
   GdkVisual             *visual;
 
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
+  g_return_if_fail (GDK_IS_WINDOW (window));
 
   if (GDK_WINDOW_DESTROYED (window))
-    return FALSE;
+    return;
 
   if (!new_parent)
     new_parent = _gdk_parent_root;
@@ -1569,7 +1539,7 @@
 
   /* already parented */
   if( window_private->parent == (GdkWindowObject *)new_parent )
-          return FALSE;
+          return;
 
   window_private->parent = (GdkWindowObject *) new_parent;
 
@@ -1623,7 +1593,7 @@
         {
 		  g_assert(0);
           _gdk_window_destroy (window, FALSE);
-          return FALSE;
+          return;
         }
         /* we hold a reference count on ourselves */
         g_object_ref (window);
@@ -1639,16 +1609,14 @@
                           &rect,
                           &impl->drawable.surface);
    }
-   return FALSE;
 }
 
 void
-gdk_window_directfb_clear_area (GdkWindow *window,
-								gint       x,
-								gint       y,
-								gint       width,
-								gint       height,
-								gboolean   send_expose_is_unusedfornow)
+_gdk_windowing_window_clear_area (GdkWindow *window,
+                                  gint       x,
+                                  gint       y,
+                                  gint       width,
+                                  gint       height)
 {
   GdkWindowObject         *private;
   GdkDrawableImplDirectFB *impl;
@@ -1770,13 +1738,13 @@
     return;
   }
 
-  gdk_window_directfb_clear_area (window, x, y, width, height, TRUE);
+  _gdk_windowing_window_clear_area (window, x, y, width, height);
 
   gdk_window_invalidate_rect (window, &rect, TRUE);
 }
 
 void
-gdk_window_directfb_raise (GdkWindow *window)
+gdk_window_raise (GdkWindow *window)
 {
   GdkWindowImplDirectFB *impl;
 
@@ -1807,7 +1775,7 @@
 }
 
 void
-gdk_window_directfb_lower (GdkWindow *window)
+gdk_window_lower (GdkWindow *window)
 {
   GdkWindowImplDirectFB *impl;
 
@@ -1940,8 +1908,8 @@
 }
 
 void
-gdk_window_directfb_set_background (GdkWindow *window,
-                       				const GdkColor  *color)
+gdk_window_set_background (GdkWindow *window,
+                           const GdkColor  *color)
 {
   GdkWindowObject *private;
 
@@ -1963,9 +1931,9 @@
 }
 
 void
-gdk_window_directfb_set_back_pixmap (GdkWindow *window,
-				                    GdkPixmap *pixmap,
-				                    gint       parent_relative)
+gdk_window_set_back_pixmap (GdkWindow *window,
+                            GdkPixmap *pixmap,
+                            gint       parent_relative)
 {
   GdkWindowObject *private;
   GdkPixmap       *old_pixmap;
@@ -2005,8 +1973,8 @@
 }
 
 void
-gdk_window_directfb_set_cursor (GdkWindow *window,
-                			   GdkCursor *cursor)
+gdk_window_set_cursor (GdkWindow *window,
+                       GdkCursor *cursor)
 {
   GdkWindowImplDirectFB *impl;
   GdkCursor             *old_cursor;
@@ -2044,7 +2012,7 @@
 }
 
 void
-gdk_window_directfb_get_geometry (GdkWindow *window,
+gdk_window_get_geometry (GdkWindow *window,
                          gint      *x,
                          gint      *y,
                          gint      *width,
@@ -2111,9 +2079,9 @@
 }
 
 gboolean
-gdk_window_directfb_get_origin (GdkWindow *window,
-					           gint      *x,
-					           gint      *y)
+gdk_window_get_origin (GdkWindow *window,
+                       gint      *x,
+                       gint      *y)
 {
   g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
 
@@ -2139,7 +2107,7 @@
                                     gint      *x,
                                     gint      *y)
 {
-  return gdk_window_directfb_get_origin (window, x, y);
+  return gdk_window_get_origin (window, x, y);
 }
 
 void
@@ -2248,7 +2216,7 @@
 }
 
 GdkEventMask
-gdk_window_directfb_get_events (GdkWindow *window)
+gdk_window_get_events (GdkWindow *window)
 {
   g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
 
@@ -2259,8 +2227,8 @@
 }
 
 void
-gdk_window_directfb_set_events (GdkWindow    *window,
-                   				GdkEventMask  event_mask)
+gdk_window_set_events (GdkWindow    *window,
+                       GdkEventMask  event_mask)
 {
   g_return_if_fail (GDK_IS_WINDOW (window));
 
@@ -2273,10 +2241,10 @@
 }
 
 void
-gdk_window_directfb_shape_combine_mask (GdkWindow *window,
-				                       GdkBitmap *mask,
-				                       gint       x,
-				                       gint       y)
+gdk_window_shape_combine_mask (GdkWindow *window,
+                               GdkBitmap *mask,
+                               gint       x,
+                               gint       y)
 {
 }
 
@@ -2289,10 +2257,10 @@
 }
 
 void
-gdk_window_directfb_shape_combine_region (GdkWindow       *window,
-				                         const GdkRegion *shape_region,
-				                         gint             offset_x,
-				                         gint             offset_y)
+gdk_window_shape_combine_region (GdkWindow       *window,
+                                 const GdkRegion *shape_region,
+                                 gint             offset_x,
+                                 gint             offset_y)
 {
 }
 
@@ -2362,7 +2330,7 @@
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
-  gdk_window_directfb_hide (window);
+  gdk_window_hide (window);
 }
 
 void
@@ -2373,7 +2341,7 @@
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
-  _gdk_window_directfb_show_raised (window);
+  gdk_window_show (window);
 }
 
 void
@@ -2617,12 +2585,12 @@
 }
 
 void
-gdk_window_directfb_set_child_shapes (GdkWindow *window)
+gdk_window_set_child_shapes (GdkWindow *window)
 {
 }
 
 void
-gdk_window_directfb_merge_child_shapes (GdkWindow *window)
+gdk_window_merge_child_shapes (GdkWindow *window)
 {
 }
 
@@ -2637,8 +2605,8 @@
 }
 
 gboolean
-gdk_window_directfb_set_static_gravities (GdkWindow *window,
-                             			gboolean   use_static)
+gdk_window_set_static_gravities (GdkWindow *window,
+                                 gboolean   use_static)
 {
   g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
 
@@ -2740,8 +2708,6 @@
 
   window = g_object_new (GDK_TYPE_WINDOW, NULL);
   private = GDK_WINDOW_OBJECT (window);
-  private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  D_DEBUG_AT( GDKDFB_Window, "DFB:%s:allocating window impl\n", __FUNCTION__);
   parent_private = GDK_WINDOW_OBJECT (parent);
   parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
   private->parent = parent_private;
@@ -2765,7 +2731,7 @@
   private->depth = parent_private->depth;
   gdk_drawable_set_colormap (GDK_DRAWABLE (window),
         gdk_drawable_get_colormap (parent));
-  gdk_window_directfb_set_cursor (window, NULL);
+  gdk_window_set_cursor (window, NULL);
   parent_private->children = g_list_prepend (parent_private->children,window);
   /*we hold a reference count on ourselves */
   g_object_ref (window);
@@ -2821,8 +2787,6 @@
     /* we hold a reference count on ourselves */
     g_object_ref (window);
     private = GDK_WINDOW_OBJECT (window);
-    private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-    D_DEBUG_AT( GDKDFB_Window, "DFB:%s:allocating window impl\n", __FUNCTION__);
     private->parent = parent_private;
     private->window_type = GDK_WINDOW_TOPLEVEL;
     impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
@@ -2848,7 +2812,7 @@
     /* We default to all events least surprise to the user 
      * minus the poll for motion events 
      */
-    gdk_window_directfb_set_events (window, (GDK_ALL_EVENTS_MASK ^ GDK_POINTER_MOTION_HINT_MASK));
+    gdk_window_set_events (window, (GDK_ALL_EVENTS_MASK ^ GDK_POINTER_MOTION_HINT_MASK));
 
     if (impl->drawable.surface)
     {
@@ -2865,7 +2829,7 @@
     //can  be null for the soft cursor window itself when
     //running a gtk directfb wm
     if( gdk_display_get_default() != NULL ) {
-        gdk_window_directfb_set_cursor (window,NULL);
+        gdk_window_set_cursor (window,NULL);
     }
 
     if (parent_private)
@@ -3189,11 +3153,11 @@
 
       D_DEBUG_AT( GDKDFB_Window, "  -> [%2d] %4d,%4d-%4dx%4d\n", i, GDKDFB_RECTANGLE_VALS_FROM_BOX( box ) );
 
-      gdk_window_directfb_clear_area (GDK_WINDOW(wimpl->gdkWindow),
+      _gdk_windowing_window_clear_area (GDK_WINDOW(wimpl->gdkWindow),
                                         box->x1,
-										box->y1,
+                                        box->y1,
                                         box->x2 - box->x1,
-                                        box->y2 - box->y1, TRUE);
+                                        box->y2 - box->y1);
     }
 }
 
@@ -3291,7 +3255,7 @@
 
 void
 gdk_window_set_opacity (GdkWindow *window,
-						gdouble    opacity)
+			gdouble    opacity)
 {
   GdkDisplay *display;
   guint8 cardinal;
@@ -3318,35 +3282,6 @@
 }
 
 
-static void
-gdk_window_impl_iface_init (GdkWindowImplIface *iface)
-{
-  iface->show = gdk_window_directfb_show;
-  iface->hide = gdk_window_directfb_hide;
-  iface->withdraw = gdk_window_directfb_withdraw;
-  iface->set_events = gdk_window_directfb_set_events;
-  iface->get_events = gdk_window_directfb_get_events;
-  iface->clear_area = gdk_window_directfb_clear_area;
-  iface->raise = gdk_window_directfb_raise;
-  iface->lower = gdk_window_directfb_lower;
-  iface->move_resize = gdk_window_directfb_move_resize;
-  iface->scroll = _gdk_window_directfb_scroll;
-  iface->move_region = _gdk_window_directfb_move_region;
-  iface->set_background = gdk_window_directfb_set_background;
-  iface->set_back_pixmap = gdk_window_directfb_set_back_pixmap;
-  iface->reparent = gdk_window_directfb_reparent;
-  iface->set_cursor = gdk_window_directfb_set_cursor;
-  iface->get_geometry = gdk_window_directfb_get_geometry;
-  iface->get_origin = gdk_window_directfb_get_origin;
-  iface->shape_combine_mask = gdk_window_directfb_shape_combine_mask;
-  iface->shape_combine_region = gdk_window_directfb_shape_combine_region;
-  iface->set_child_shapes = gdk_window_directfb_set_child_shapes;
-  iface->merge_child_shapes = gdk_window_directfb_merge_child_shapes;
-  iface->set_static_gravities = gdk_window_directfb_set_static_gravities;
-  iface->get_offsets = _gdk_window_directfb_get_offsets;
-}
-
-
 #define __GDK_WINDOW_X11_C__
 #include "gdkaliasdef.c"
 
