[gtk/matthiasc/atspi-child: 1/2] stack: Change ordering for removal




commit 1d802881eb3e4f2042efe9be51d74f0ae14d32b9
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Oct 22 10:02:22 2020 -0400

    stack: Change ordering for removal
    
    Unparent the child widget before tearing down its
    stack page. This is necessary so a11y can still access
    the stack page accessible to emit change notification
    when it learns that the child is removed.

 gtk/gtkstack.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index b97ebb54bb..e1a24b7763 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -1467,16 +1467,12 @@ stack_remove (GtkStack  *stack,
   if (child_info == NULL)
     return;
 
-  priv->children = g_list_remove (priv->children, child_info);
-  
   g_signal_handlers_disconnect_by_func (child,
                                         stack_child_visibility_notify_cb,
                                         stack);
 
   was_visible = gtk_widget_get_visible (child);
 
-  g_clear_object (&child_info->widget);
-
   if (priv->visible_child == child_info)
     {
       if (in_dispose)
@@ -1490,6 +1486,10 @@ stack_remove (GtkStack  *stack,
 
   gtk_widget_unparent (child);
 
+  g_clear_object (&child_info->widget);
+
+  priv->children = g_list_remove (priv->children, child_info);
+
   g_object_unref (child_info);
 
   if (!in_dispose &&


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