[gtk+/wip/alexl/simplify-gdkwindow: 2/2] gdk: Drop gdk_window_reparent



commit 330c7feaa2cae359f43e6cb7372dba812ff7dfd2
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Dec 16 12:35:03 2016 +0100

    gdk: Drop gdk_window_reparent
    
    We're not currently using this, and dropping it allows us to loose
    a bunch of code which leads us towards the goal of having GdkWindow
    only for toplevels (and reparenting makes not sense for toplevels).

 gdk/broadway/gdkwindow-broadway.c |   10 --
 gdk/gdkwindow.c                   |  221 -------------------------------------
 gdk/gdkwindow.h                   |    5 -
 gdk/gdkwindowimpl.h               |    5 -
 gdk/mir/gdkmirwindowimpl.c        |   11 --
 gdk/quartz/gdkwindow-quartz.c     |   56 ----------
 gdk/wayland/gdkwindow-wayland.c   |   10 --
 gdk/win32/gdkwindow-win32.c       |   90 ---------------
 gdk/x11/gdkwindow-x11.c           |   74 ------------
 9 files changed, 0 insertions(+), 482 deletions(-)
---
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index 2d68880..4701568 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -503,15 +503,6 @@ gdk_window_broadway_move_resize (GdkWindow *window,
     window->resize_count++;
 }
 
-static gboolean
-gdk_window_broadway_reparent (GdkWindow *window,
-                             GdkWindow *new_parent,
-                             gint       x,
-                             gint       y)
-{
-  return FALSE;
-}
-
 static void
 gdk_window_broadway_raise (GdkWindow *window)
 {
@@ -1495,7 +1486,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
   impl_class->lower = gdk_window_broadway_lower;
   impl_class->restack_toplevel = gdk_window_broadway_restack_toplevel;
   impl_class->move_resize = gdk_window_broadway_move_resize;
-  impl_class->reparent = gdk_window_broadway_reparent;
   impl_class->set_device_cursor = gdk_window_broadway_set_device_cursor;
   impl_class->get_geometry = gdk_window_broadway_get_geometry;
   impl_class->get_root_coords = gdk_window_broadway_get_root_coords;
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 356fb87..8c72268 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -1288,227 +1288,6 @@ gdk_window_new_input (GdkWindow          *parent,
   return gdk_window_new (parent, &attr);
 }
 
-static gboolean
-is_parent_of (GdkWindow *parent,
-             GdkWindow *child)
-{
-  GdkWindow *w;
-
-  w = child;
-  while (w != NULL)
-    {
-      if (w == parent)
-       return TRUE;
-
-      w = gdk_window_get_parent (w);
-    }
-
-  return FALSE;
-}
-
-static void
-change_impl (GdkWindow *private,
-            GdkWindow *impl_window,
-            GdkWindowImpl *new)
-{
-  GList *l;
-  GdkWindow *child;
-  GdkWindowImpl *old_impl;
-  GdkWindow *old_impl_window;
-
-  old_impl = private->impl;
-  old_impl_window = private->impl_window;
-  if (private != impl_window)
-    private->impl_window = g_object_ref (impl_window);
-  else
-    private->impl_window = private;
-  private->impl = g_object_ref (new);
-  if (old_impl_window != private)
-    g_object_unref (old_impl_window);
-  g_object_unref (old_impl);
-
-  for (l = private->children; l != NULL; l = l->next)
-    {
-      child = l->data;
-
-      g_assert (child->impl == old_impl); /* All children should be the same impl */
-
-      change_impl (child, impl_window, new);
-    }
-}
-
-/**
- * gdk_window_reparent:
- * @window: a #GdkWindow
- * @new_parent: new parent to move @window into
- * @x: X location inside the new parent
- * @y: Y location inside the new parent
- *
- * Reparents @window into the given @new_parent. The window being
- * reparented will be unmapped as a side effect.
- *
- **/
-void
-gdk_window_reparent (GdkWindow *window,
-                    GdkWindow *new_parent,
-                    gint       x,
-                    gint       y)
-{
-  GdkWindow *old_parent;
-  GdkScreen *screen;
-  gboolean show, was_mapped;
-  GdkEventMask old_native_event_mask;
-  GdkWindowImplClass *impl_class;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (new_parent == NULL || GDK_IS_WINDOW (new_parent));
-  g_return_if_fail (GDK_WINDOW_TYPE (window) != GDK_WINDOW_ROOT);
-
-  if (GDK_WINDOW_DESTROYED (window) ||
-      (new_parent && GDK_WINDOW_DESTROYED (new_parent)))
-    return;
-
-  screen = gdk_window_get_screen (window);
-  if (!new_parent)
-    new_parent = gdk_screen_get_root_window (screen);
-
-  /* Don't allow reparenting to/from toplevel status */
-  if (!gdk_window_is_toplevel (window) && (new_parent->window_type == GDK_WINDOW_ROOT ||
-                                           new_parent->window_type == GDK_WINDOW_FOREIGN))
-    {
-      g_warning ("Can't reparent to toplevel");
-      return;
-    }
-
-  if (gdk_window_is_toplevel (window) && (new_parent->window_type != GDK_WINDOW_ROOT ||
-                                          new_parent->window_type != GDK_WINDOW_FOREIGN))
-    {
-      g_warning ("Can't reparent from toplevel");
-      return;
-    }
-
-  /* No input-output children of input-only windows */
-  if (new_parent->input_only && !window->input_only)
-    return;
-
-  /* Don't create loops in hierarchy */
-  if (is_parent_of (window, new_parent))
-    return;
-
-  impl_class = GDK_WINDOW_IMPL_GET_CLASS (window->impl);
-  old_parent = window->parent;
-
-  was_mapped = GDK_WINDOW_IS_MAPPED (window);
-
-  old_native_event_mask = 0;
-  if (gdk_window_has_impl (window))
-    {
-      /* This shouldn't happen, check anyway to see if that ever fails */
-      g_assert (new_parent->window_type == GDK_WINDOW_ROOT ||
-                new_parent->window_type == GDK_WINDOW_FOREIGN);
-
-      old_native_event_mask = get_native_event_mask (window);
-      /* Native window */
-      show = impl_class->reparent (window, new_parent, x, y);
-    }
-  else
-    {
-      /* This shouldn't happen, check anyway to see if that ever fails */
-      g_assert (new_parent->window_type != GDK_WINDOW_ROOT &&
-               new_parent->window_type != GDK_WINDOW_FOREIGN);
-
-      show = was_mapped;
-      gdk_window_hide (window);
-
-      change_impl (window,
-                  new_parent->impl_window,
-                  new_parent->impl);
-    }
-
-  /* From here on, we treat parents of type GDK_WINDOW_FOREIGN like
-   * the root window
-   */
-  if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN)
-    {
-      new_parent = gdk_screen_get_root_window (screen);
-    }
-
-  if (old_parent)
-    old_parent->children = g_list_remove_link (old_parent->children, &window->children_list_node);
-
-  window->parent = new_parent;
-  window->x = x;
-  window->y = y;
-
-  new_parent->children = g_list_concat (&window->children_list_node, new_parent->children);
-
-  /* Switch the window type as appropriate */
-
-  switch (GDK_WINDOW_TYPE (new_parent))
-    {
-    case GDK_WINDOW_ROOT:
-    case GDK_WINDOW_FOREIGN:
-      if (window->toplevel_window_type != -1)
-       GDK_WINDOW_TYPE (window) = window->toplevel_window_type;
-      else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD)
-       GDK_WINDOW_TYPE (window) = GDK_WINDOW_TOPLEVEL;
-      break;
-    case GDK_WINDOW_TOPLEVEL:
-    case GDK_WINDOW_CHILD:
-    case GDK_WINDOW_TEMP:
-      if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD && \
-         GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
-       {
-         /* Save the original window type so we can restore it if the
-          * window is reparented back to be a toplevel
-          */
-         window->toplevel_window_type = GDK_WINDOW_TYPE (window);
-         GDK_WINDOW_TYPE (window) = GDK_WINDOW_CHILD;
-       }
-    }
-
-  /* If we changed the window type, we might have to set or
-   * unset the frame clock on the window
-   */
-  if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_ROOT &&
-      GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
-    {
-      if (window->frame_clock == NULL)
-        {
-          GdkFrameClock *frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL);
-          gdk_window_set_frame_clock (window, frame_clock);
-          g_object_unref (frame_clock);
-        }
-    }
-  else
-    {
-      if (window->frame_clock != NULL)
-        {
-          g_object_run_dispose (G_OBJECT (window->frame_clock));
-          gdk_window_set_frame_clock (window, NULL);
-        }
-    }
-
-  /* We might have changed window type for a native windows, so we
-     need to change the event mask too. */
-  if (gdk_window_has_impl (window))
-    {
-      GdkEventMask native_event_mask = get_native_event_mask (window);
-
-      if (native_event_mask != old_native_event_mask)
-       impl_class->set_events (window, native_event_mask);
-    }
-
-  _gdk_window_update_viewable (window);
-
-  recompute_visible_regions (window, FALSE);
-
-  if (show)
-    gdk_window_show_unraised (window);
-  else
-    _gdk_synthesize_crossing_events_for_geometry_change (window);
-}
-
 /**
  * _gdk_event_filter_unref:
  * @window: (allow-none): A #GdkWindow, or %NULL to be the global window
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index 0acd77c..d2b2496 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -471,11 +471,6 @@ void          gdk_window_move_resize           (GdkWindow     *window,
                                                 gint           width,
                                                 gint           height);
 GDK_AVAILABLE_IN_ALL
-void          gdk_window_reparent              (GdkWindow     *window,
-                                                GdkWindow     *new_parent,
-                                                gint           x,
-                                                gint           y);
-GDK_AVAILABLE_IN_ALL
 void          gdk_window_raise                 (GdkWindow     *window);
 GDK_AVAILABLE_IN_ALL
 void          gdk_window_lower                 (GdkWindow     *window);
diff --git a/gdk/gdkwindowimpl.h b/gdk/gdkwindowimpl.h
index 2a8d6ae..cdfe36f 100644
--- a/gdk/gdkwindowimpl.h
+++ b/gdk/gdkwindowimpl.h
@@ -84,11 +84,6 @@ struct _GdkWindowImplClass
   GdkEventMask (* get_events)           (GdkWindow       *window);
   void         (* set_events)           (GdkWindow       *window,
                                          GdkEventMask     event_mask);
-  
-  gboolean     (* reparent)             (GdkWindow       *window,
-                                         GdkWindow       *new_parent,
-                                         gint             x,
-                                         gint             y);
 
   void         (* set_device_cursor)    (GdkWindow       *window,
                                          GdkDevice       *device,
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
index e8cdde9..aae3886 100644
--- a/gdk/mir/gdkmirwindowimpl.c
+++ b/gdk/mir/gdkmirwindowimpl.c
@@ -870,16 +870,6 @@ gdk_mir_window_impl_set_events (GdkWindow    *window,
   /* We send all events and let GDK decide */
 }
 
-static gboolean
-gdk_mir_window_impl_reparent (GdkWindow *window,
-                              GdkWindow *new_parent,
-                              gint       x,
-                              gint       y)
-{
-  //g_printerr ("gdk_mir_window_impl_reparent window=%p new-parent=%p\n", window, new_parent);
-  return FALSE;
-}
-
 static void
 gdk_mir_window_impl_set_device_cursor (GdkWindow *window,
                                        GdkDevice *device,
@@ -1672,7 +1662,6 @@ gdk_mir_window_impl_class_init (GdkMirWindowImplClass *klass)
   impl_class->move_to_rect = gdk_mir_window_impl_move_to_rect;
   impl_class->get_events = gdk_mir_window_impl_get_events;
   impl_class->set_events = gdk_mir_window_impl_set_events;
-  impl_class->reparent = gdk_mir_window_impl_reparent;
   impl_class->set_device_cursor = gdk_mir_window_impl_set_device_cursor;
   impl_class->get_geometry = gdk_mir_window_impl_get_geometry;
   impl_class->get_root_coords = gdk_mir_window_impl_get_root_coords;
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index b8adfd1..e853a83 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -946,12 +946,6 @@ gdk_quartz_window_destroy (GdkWindow *window,
     }
 }
 
-static void
-gdk_quartz_window_destroy_foreign (GdkWindow *window)
-{
-  /* Foreign windows aren't supported in OSX. */
-}
-
 /* FIXME: This might be possible to simplify with client-side windows. Also
  * note that already_mapped is not used yet, see the x11 backend.
 */
@@ -1290,54 +1284,6 @@ gdk_window_quartz_move_resize (GdkWindow *window,
     }
 }
 
-/* FIXME: This might need fixing (reparenting didn't work before client-side
- * windows either).
- */
-static gboolean
-gdk_window_quartz_reparent (GdkWindow *window,
-                            GdkWindow *new_parent,
-                            gint       x,
-                            gint       y)
-{
-  GdkWindow *old_parent;
-  GdkWindowImplQuartz *impl, *old_parent_impl, *new_parent_impl;
-  NSView *view, *new_parent_view;
-
-  if (new_parent == _gdk_root)
-    {
-      /* Could be added, just needs implementing. */
-      g_warning ("Reparenting to root window is not supported yet in the Mac OS X backend");
-      return FALSE;
-    }
-
-  impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
-  view = impl->view;
-
-  new_parent_impl = GDK_WINDOW_IMPL_QUARTZ (new_parent->impl);
-  new_parent_view = new_parent_impl->view;
-
-  old_parent = window->parent;
-  old_parent_impl = GDK_WINDOW_IMPL_QUARTZ (old_parent->impl);
-
-  [view retain];
-
-  [view removeFromSuperview];
-  [new_parent_view addSubview:view];
-
-  [view release];
-
-  window->parent = new_parent;
-
-  if (old_parent)
-    {
-      old_parent_impl->sorted_children = g_list_remove (old_parent_impl->sorted_children, window);
-    }
-
-  new_parent_impl->sorted_children = g_list_prepend (new_parent_impl->sorted_children, window);
-
-  return FALSE;
-}
-
 /* Get the toplevel ordering from NSApp and update our own list. We do
  * this on demand since the NSApp’s list is not up to date directly
  * after we get windowDidBecomeMain.
@@ -2794,7 +2740,6 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
   impl_class->lower = gdk_window_quartz_lower;
   impl_class->restack_toplevel = gdk_window_quartz_restack_toplevel;
   impl_class->move_resize = gdk_window_quartz_move_resize;
-  impl_class->reparent = gdk_window_quartz_reparent;
   impl_class->set_device_cursor = gdk_window_quartz_set_device_cursor;
   impl_class->get_geometry = gdk_window_quartz_get_geometry;
   impl_class->get_root_coords = gdk_window_quartz_get_root_coords;
@@ -2802,7 +2747,6 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
   impl_class->shape_combine_region = gdk_window_quartz_shape_combine_region;
   impl_class->input_shape_combine_region = gdk_window_quartz_input_shape_combine_region;
   impl_class->destroy = gdk_quartz_window_destroy;
-  impl_class->destroy_foreign = gdk_quartz_window_destroy_foreign;
   impl_class->begin_paint = gdk_window_impl_quartz_begin_paint;
   impl_class->get_scale_factor = gdk_quartz_window_get_scale_factor;
 
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index d1a5df4..823fc3b 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -2656,15 +2656,6 @@ gdk_window_wayland_move_to_rect (GdkWindow          *window,
   impl->position_method = POSITION_METHOD_MOVE_TO_RECT;
 }
 
-static gboolean
-gdk_window_wayland_reparent (GdkWindow *window,
-                             GdkWindow *new_parent,
-                             gint       x,
-                             gint       y)
-{
-  return FALSE;
-}
-
 static void
 gdk_window_wayland_set_device_cursor (GdkWindow *window,
                                       GdkDevice *device,
@@ -3597,7 +3588,6 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
   impl_class->restack_toplevel = gdk_window_wayland_restack_toplevel;
   impl_class->move_resize = gdk_window_wayland_move_resize;
   impl_class->move_to_rect = gdk_window_wayland_move_to_rect;
-  impl_class->reparent = gdk_window_wayland_reparent;
   impl_class->set_device_cursor = gdk_window_wayland_set_device_cursor;
   impl_class->get_geometry = gdk_window_wayland_get_geometry;
   impl_class->get_root_coords = gdk_window_wayland_get_root_coords;
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index d68601e..6bded8c 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -1628,95 +1628,6 @@ gdk_win32_window_move_resize (GdkWindow *window,
     _gdk_win32_emit_configure_event (window);
 }
 
-static gboolean
-gdk_win32_window_reparent (GdkWindow *window,
-                          GdkWindow *new_parent,
-                          gint       x,
-                          gint       y)
-{
-  GdkScreen *screen;
-  GdkWindowImplWin32 *impl;
-  gboolean new_parent_is_root;
-  gboolean was_toplevel;
-  LONG style;
-
-  screen = gdk_window_get_screen (window);
-
-  if (!new_parent)
-    {
-      new_parent = gdk_screen_get_root_window (screen);
-      new_parent_is_root = TRUE;
-    }
-  else
-     new_parent_is_root = (gdk_screen_get_root_window (screen) == new_parent);
-
-  impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
-
-  GDK_NOTE (MISC, g_print ("gdk_win32_window_reparent: %p: %p\n",
-                          GDK_WINDOW_HWND (window),
-                          GDK_WINDOW_HWND (new_parent)));
-
-  style = GetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE);
-
-  was_toplevel = GetAncestor (GDK_WINDOW_HWND (window), GA_PARENT) == GetDesktopWindow ();
-  if (was_toplevel && !new_parent_is_root)
-    {
-      /* Reparenting from top-level (child of desktop). Clear out
-       * decorations.
-       */
-      style &= ~(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
-      style |= WS_CHILD;
-      SetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE, style);
-    }
-  else if (new_parent_is_root)
-    {
-      /* Reparenting to top-level. Add decorations. */
-      style &= ~(WS_CHILD);
-      style |= WS_OVERLAPPEDWINDOW;
-      SetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE, style);
-    }
-
-  API_CALL (SetParent, (GDK_WINDOW_HWND (window),
-                       GDK_WINDOW_HWND (new_parent)));
-
-  /* From here on, we treat parents of type GDK_WINDOW_FOREIGN like
-   * the root window
-   */
-  if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN)
-    new_parent = gdk_screen_get_root_window (screen);
-
-  window->parent = new_parent;
-
-  /* Switch the window type as appropriate */
-
-  switch (GDK_WINDOW_TYPE (new_parent))
-    {
-    case GDK_WINDOW_ROOT:
-      if (impl->toplevel_window_type != -1)
-       GDK_WINDOW_TYPE (window) = impl->toplevel_window_type;
-      else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD)
-       GDK_WINDOW_TYPE (window) = GDK_WINDOW_TOPLEVEL;
-      break;
-
-    case GDK_WINDOW_TOPLEVEL:
-    case GDK_WINDOW_CHILD:
-    case GDK_WINDOW_TEMP:
-      if (WINDOW_IS_TOPLEVEL (window))
-       {
-         /* Save the original window type so we can restore it if the
-          * window is reparented back to be a toplevel.
-          */
-         impl->toplevel_window_type = GDK_WINDOW_TYPE (window);
-         GDK_WINDOW_TYPE (window) = GDK_WINDOW_CHILD;
-       }
-    }
-
-  /* Move window into desired position while keeping the same client area */
-  gdk_win32_window_move_resize (window, TRUE, x, y, window->width, window->height);
-
-  return FALSE;
-}
-
 static void
 gdk_win32_window_raise (GdkWindow *window)
 {
@@ -6011,7 +5922,6 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
   impl_class->lower = gdk_win32_window_lower;
   impl_class->restack_toplevel = gdk_win32_window_restack_toplevel;
   impl_class->move_resize = gdk_win32_window_move_resize;
-  impl_class->reparent = gdk_win32_window_reparent;
   impl_class->set_device_cursor = gdk_win32_window_set_device_cursor;
   impl_class->get_geometry = gdk_win32_window_get_geometry;
   impl_class->get_device_state = gdk_window_win32_get_device_state;
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 55fb693..e00c018 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -1699,79 +1699,6 @@ _gdk_x11_window_set_window_scale (GdkWindow *window,
   gdk_window_invalidate_rect (window, NULL, TRUE);
 }
 
-static gboolean
-gdk_window_x11_reparent (GdkWindow *window,
-                         GdkWindow *new_parent,
-                         gint       x,
-                         gint       y)
-{
-  GdkWindowImplX11 *impl;
-
-  impl = GDK_WINDOW_IMPL_X11 (window->impl);
-
-  XReparentWindow (GDK_WINDOW_XDISPLAY (window),
-                  GDK_WINDOW_XID (window),
-                  GDK_WINDOW_XID (new_parent),
-                  (new_parent->abs_x + x)  * impl->window_scale,
-                   (new_parent->abs_y + y) * impl->window_scale);
-
-  if (WINDOW_IS_TOPLEVEL (window))
-    connect_frame_clock (window);
-  else
-    /* old frame clock was disposed, our signal handlers removed */
-    impl->frame_clock_connected = FALSE;
-
-  if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN)
-    new_parent = gdk_screen_get_root_window (GDK_WINDOW_SCREEN (window));
-
-  window->parent = new_parent;
-
-  /* Switch the window type as appropriate */
-
-  switch (GDK_WINDOW_TYPE (new_parent))
-    {
-    case GDK_WINDOW_ROOT:
-    case GDK_WINDOW_FOREIGN:
-      /* Reparenting to toplevel */
-      
-      if (!WINDOW_IS_TOPLEVEL (window) &&
-         GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN)
-       {
-         /* This is also done in common code at a later stage, but we
-            need it in setup_toplevel, so do it here too */
-         if (window->toplevel_window_type != -1)
-           GDK_WINDOW_TYPE (window) = window->toplevel_window_type;
-         else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD)
-           GDK_WINDOW_TYPE (window) = GDK_WINDOW_TOPLEVEL;
-         
-         /* Wasn't a toplevel, set up */
-         setup_toplevel_window (window, new_parent);
-       }
-
-      break;
-      
-    case GDK_WINDOW_TOPLEVEL:
-    case GDK_WINDOW_CHILD:
-    case GDK_WINDOW_TEMP:
-      if (WINDOW_IS_TOPLEVEL (window) &&
-         impl->toplevel)
-       {
-         if (impl->toplevel->focus_window)
-           {
-             XDestroyWindow (GDK_WINDOW_XDISPLAY (window), impl->toplevel->focus_window);
-              _gdk_x11_display_remove_window (GDK_WINDOW_DISPLAY (window), impl->toplevel->focus_window);
-           }
-         
-         gdk_toplevel_x11_free_contents (GDK_WINDOW_DISPLAY (window), 
-                                         impl->toplevel);
-         g_free (impl->toplevel);
-         impl->toplevel = NULL;
-       }
-    }
-
-  return FALSE;
-}
-
 static void
 gdk_window_x11_raise (GdkWindow *window)
 {
@@ -5127,7 +5054,6 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
   impl_class->lower = gdk_window_x11_lower;
   impl_class->restack_toplevel = gdk_window_x11_restack_toplevel;
   impl_class->move_resize = gdk_window_x11_move_resize;
-  impl_class->reparent = gdk_window_x11_reparent;
   impl_class->set_device_cursor = gdk_window_x11_set_device_cursor;
   impl_class->get_geometry = gdk_window_x11_get_geometry;
   impl_class->get_root_coords = gdk_window_x11_get_root_coords;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]