[gtk+/wip/baedert/box: 22/72] widget: Remove gtk_widget_reparent
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/box: 22/72] widget: Remove gtk_widget_reparent
- Date: Mon, 17 Oct 2016 16:51:33 +0000 (UTC)
commit 9efd122abb817a86a819aaf3047a42ec6d1fe00b
Author: Timm Bäder <mail baedert org>
Date: Wed Oct 12 19:46:23 2016 +0200
widget: Remove gtk_widget_reparent
docs/reference/gtk/gtk4-sections.txt | 1 -
gtk/gtkwidget.c | 126 ----------------------------------
gtk/gtkwidget.h | 3 -
tests/testgtk.c | 34 ++++++----
tests/testlist2.c | 7 +-
5 files changed, 25 insertions(+), 146 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 185d4d9..8148ffc 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5050,7 +5050,6 @@ gtk_widget_list_accel_closures
gtk_widget_can_activate_accel
gtk_widget_event
gtk_widget_activate
-gtk_widget_reparent
gtk_widget_intersect
gtk_widget_is_focus
gtk_widget_grab_focus
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index ca6be0c..140cd5e 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -7184,132 +7184,6 @@ gtk_widget_activate (GtkWidget *widget)
return FALSE;
}
-static void
-gtk_widget_reparent_subwindows (GtkWidget *widget,
- GdkWindow *new_window)
-{
- GtkWidgetPrivate *priv = widget->priv;
-
- if (!_gtk_widget_get_has_window (widget))
- {
- GList *children = gdk_window_get_children (priv->window);
- GList *tmp_list;
-
- for (tmp_list = children; tmp_list; tmp_list = tmp_list->next)
- {
- GdkWindow *window = tmp_list->data;
- gpointer child;
-
- gdk_window_get_user_data (window, &child);
- while (child && child != widget)
- child = ((GtkWidget*) child)->priv->parent;
-
- if (child)
- gdk_window_reparent (window, new_window, 0, 0);
- }
-
- g_list_free (children);
- }
- else
- {
- GdkWindow *parent;
- GList *tmp_list, *children;
-
- parent = gdk_window_get_parent (priv->window);
-
- if (parent == NULL)
- gdk_window_reparent (priv->window, new_window, 0, 0);
- else
- {
- children = gdk_window_get_children (parent);
-
- for (tmp_list = children; tmp_list; tmp_list = tmp_list->next)
- {
- GdkWindow *window = tmp_list->data;
- gpointer child;
-
- gdk_window_get_user_data (window, &child);
-
- if (child == widget)
- gdk_window_reparent (window, new_window, 0, 0);
- }
-
- g_list_free (children);
- }
- }
-}
-
-static void
-gtk_widget_reparent_fixup_child (GtkWidget *widget,
- gpointer client_data)
-{
- GtkWidgetPrivate *priv = widget->priv;
-
- g_assert (client_data != NULL);
-
- if (!_gtk_widget_get_has_window (widget))
- {
- if (priv->window)
- g_object_unref (priv->window);
- priv->window = (GdkWindow*) client_data;
- if (priv->window)
- g_object_ref (priv->window);
-
- if (GTK_IS_CONTAINER (widget))
- gtk_container_forall (GTK_CONTAINER (widget),
- gtk_widget_reparent_fixup_child,
- client_data);
- }
-}
-
-/**
- * gtk_widget_reparent:
- * @widget: a #GtkWidget
- * @new_parent: a #GtkContainer to move the widget into
- *
- * Moves a widget from one #GtkContainer to another, handling reference
- * count issues to avoid destroying the widget.
- *
- * Deprecated: 3.14: Use gtk_container_remove() and gtk_container_add().
- **/
-void
-gtk_widget_reparent (GtkWidget *widget,
- GtkWidget *new_parent)
-{
- GtkWidgetPrivate *priv;
-
- g_return_if_fail (GTK_IS_WIDGET (widget));
- g_return_if_fail (GTK_IS_CONTAINER (new_parent));
- priv = widget->priv;
- g_return_if_fail (priv->parent != NULL);
-
- if (priv->parent != new_parent)
- {
- /* First try to see if we can get away without unrealizing
- * the widget as we reparent it. if so we set a flag so
- * that gtk_widget_unparent doesn't unrealize widget
- */
- if (_gtk_widget_get_realized (widget) && _gtk_widget_get_realized (new_parent))
- priv->in_reparent = TRUE;
-
- g_object_ref (widget);
- gtk_container_remove (GTK_CONTAINER (priv->parent), widget);
- gtk_container_add (GTK_CONTAINER (new_parent), widget);
- g_object_unref (widget);
-
- if (priv->in_reparent)
- {
- priv->in_reparent = FALSE;
-
- gtk_widget_reparent_subwindows (widget, gtk_widget_get_parent_window (widget));
- gtk_widget_reparent_fixup_child (widget,
- gtk_widget_get_parent_window (widget));
- }
-
- g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_PARENT]);
- }
-}
-
/**
* gtk_widget_intersect:
* @widget: a #GtkWidget
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index 4c5ac48..8d926e4 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -738,9 +738,6 @@ gboolean gtk_widget_send_focus_change (GtkWidget *widget,
GDK_AVAILABLE_IN_ALL
gboolean gtk_widget_activate (GtkWidget *widget);
-GDK_DEPRECATED_IN_3_14
-void gtk_widget_reparent (GtkWidget *widget,
- GtkWidget *new_parent);
GDK_AVAILABLE_IN_ALL
gboolean gtk_widget_intersect (GtkWidget *widget,
const GdkRectangle *area,
diff --git a/tests/testgtk.c b/tests/testgtk.c
index bded479..d493bba 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -1739,9 +1739,10 @@ reparent_label (GtkWidget *widget,
label = g_object_get_data (G_OBJECT (widget), "user_data");
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_reparent (label, new_parent);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ g_object_ref (label);
+ gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (widget)), label);
+ gtk_container_add (GTK_CONTAINER (new_parent), label);
+ g_object_unref (label);
}
static void
@@ -3271,10 +3272,11 @@ static gulong sw_destroyed_handler = 0;
static gboolean
scrolled_windows_delete_cb (GtkWidget *widget, GdkEventAny *event, GtkWidget *scrollwin)
{
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_reparent (scrollwin, sw_parent);
-G_GNUC_END_IGNORE_DEPRECATIONS
-
+ g_object_ref (scrollwin);
+ gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (scrollwin)), scrollwin);
+ gtk_container_add (GTK_CONTAINER (sw_parent), scrollwin);
+ g_object_unref (scrollwin);
+
g_signal_handler_disconnect (sw_parent, sw_destroyed_handler);
sw_float_parent = NULL;
sw_parent = NULL;
@@ -3304,9 +3306,12 @@ scrolled_windows_remove (GtkWidget *dialog, gint response, GtkWidget *scrollwin)
if (sw_parent)
{
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_reparent (scrollwin, sw_parent);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ g_object_ref (scrollwin);
+ gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (scrollwin)), scrollwin);
+ gtk_container_add (GTK_CONTAINER (sw_parent), scrollwin);
+ g_object_unref (scrollwin);
+
+
gtk_widget_destroy (sw_float_parent);
g_signal_handler_disconnect (sw_parent, sw_destroyed_handler);
@@ -3323,9 +3328,12 @@ G_GNUC_END_IGNORE_DEPRECATIONS
gtk_window_set_default_size (GTK_WINDOW (sw_float_parent), 200, 200);
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_reparent (scrollwin, sw_float_parent);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ g_object_ref (scrollwin);
+ gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (scrollwin)), scrollwin);
+ gtk_container_add (GTK_CONTAINER (sw_float_parent), scrollwin);
+ g_object_unref (scrollwin);
+
+
gtk_widget_show (sw_float_parent);
sw_destroyed_handler =
diff --git a/tests/testlist2.c b/tests/testlist2.c
index 1f0b2aa..5f0a09e 100644
--- a/tests/testlist2.c
+++ b/tests/testlist2.c
@@ -20,9 +20,10 @@ remove_this_row (GtkButton *button, GtkWidget *child)
revealer = gtk_revealer_new ();
gtk_revealer_set_reveal_child (GTK_REVEALER (revealer), TRUE);
gtk_widget_show (revealer);
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_reparent (child, revealer);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ g_object_ref (child);
+ gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (child)), child);
+ gtk_container_add (GTK_CONTAINER (revealer), child);
+ g_object_unref (child);
gtk_container_add (GTK_CONTAINER (row), revealer);
g_signal_connect (revealer, "notify::child-revealed",
G_CALLBACK (row_unrevealed), NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]