Author: cazfi Date: Wed Nov 2 05:44:09 2016 New Revision: 34319 URL: http://svn.gna.org/viewcvs/freeciv?rev=34319&view=rev Log: Replaced deprecated gtk_widget_reparent() usages with modern solutions in gtk3.22-client
See patch #6733 Modified: branches/S2_6/client/gui-gtk-3.22/chatline.c branches/S2_6/client/gui-gtk-3.22/gui_main.c Modified: branches/S2_6/client/gui-gtk-3.22/chatline.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-3.22/chatline.c?rev=34319&r1=34318&r2=34319&view=diff ============================================================================== --- branches/S2_6/client/gui-gtk-3.22/chatline.c (original) +++ branches/S2_6/client/gui-gtk-3.22/chatline.c Wed Nov 2 05:44:09 2016 @@ -1174,7 +1174,11 @@ if (ptoolkit->toolbar_displayed) { gtk_widget_hide(ptoolkit->toolbar); } - gtk_widget_reparent(ptoolkit->main_widget, toolkit_view); + g_object_ref(ptoolkit->main_widget); /* Make sure reference count stays above 0 + * during the transition to new parent. */ + gtk_container_remove(GTK_CONTAINER(parent), ptoolkit->main_widget); + gtk_container_add(GTK_CONTAINER(toolkit_view), ptoolkit->main_widget); + g_object_unref(ptoolkit->main_widget); if (ptoolkit->toolbar_displayed) { gtk_widget_show(ptoolkit->toolbar); } Modified: branches/S2_6/client/gui-gtk-3.22/gui_main.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-3.22/gui_main.c?rev=34319&r1=34318&r2=34319&view=diff ============================================================================== --- branches/S2_6/client/gui-gtk-3.22/gui_main.c (original) +++ branches/S2_6/client/gui-gtk-3.22/gui_main.c Wed Nov 2 05:44:09 2016 @@ -807,14 +807,20 @@ static void tearoff_destroy(GtkWidget *w, gpointer data) { GtkWidget *p, *b, *box; + GtkWidget *old_parent; box = GTK_WIDGET(data); + old_parent = gtk_widget_get_parent(box); p = g_object_get_data(G_OBJECT(w), "parent"); b = g_object_get_data(G_OBJECT(w), "toggle"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), FALSE); gtk_widget_hide(w); - gtk_widget_reparent(box, p); + g_object_ref(box); /* Make sure reference count stays above 0 + * during the transition to new parent. */ + gtk_container_remove(GTK_CONTAINER(old_parent), box); + gtk_container_add(GTK_CONTAINER(p), box); + g_object_unref(box); } /************************************************************************** @@ -834,11 +840,13 @@ static void tearoff_callback(GtkWidget *b, gpointer data) { GtkWidget *box = GTK_WIDGET(data); - GtkWidget *w; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(b))) { GtkWidget *temp_hide; - + GtkWidget *old_parent; + GtkWidget *w; + + old_parent = gtk_widget_get_parent(box); w = gtk_window_new(GTK_WINDOW_TOPLEVEL); setup_dialog(w, toplevel); gtk_widget_set_name(w, "Freeciv"); @@ -854,7 +862,12 @@ if (temp_hide != NULL) { gtk_widget_hide(temp_hide); } - gtk_widget_reparent(box, w); + + g_object_ref(box); /* Make sure reference count stays above 0 + * during the transition to new parent. */ + gtk_container_remove(GTK_CONTAINER(old_parent), box); + gtk_container_add(GTK_CONTAINER(w), box); + g_object_unref(box); gtk_widget_show(w); if (temp_hide != NULL) { gtk_widget_show(temp_hide); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits