diff options
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r-- | gtk/gtkwidget.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 5ac8b9ac84..217293cd23 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2374,7 +2374,7 @@ gtk_widget_init (GTypeInstance *instance, gpointer g_class) priv->at_context = gtk_accessible_get_at_context (GTK_ACCESSIBLE (widget)); } -static void +void gtk_widget_realize_at_context (GtkWidget *self) { GtkWidgetPrivate *priv = gtk_widget_get_instance_private (self); @@ -2383,10 +2383,6 @@ gtk_widget_realize_at_context (GtkWidget *self) if (priv->at_context == NULL || gtk_at_context_is_realized (priv->at_context)) return; - /* Realize the root ATContext first */ - if (!GTK_IS_ROOT (self)) - gtk_widget_realize_at_context (GTK_WIDGET (priv->root)); - /* Reset the accessible role to its current value */ if (role == GTK_ACCESSIBLE_ROLE_WIDGET) { @@ -2401,6 +2397,18 @@ gtk_widget_realize_at_context (GtkWidget *self) } void +gtk_widget_unrealize_at_context (GtkWidget *widget) +{ + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); + + if (priv->at_context != NULL) + { + gtk_at_context_set_display (priv->at_context, gdk_display_get_default ()); + gtk_at_context_unrealize (priv->at_context); + } +} + +void gtk_widget_root (GtkWidget *widget) { GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); @@ -2428,8 +2436,6 @@ gtk_widget_root (GtkWidget *widget) if (priv->layout_manager) gtk_layout_manager_set_root (priv->layout_manager, priv->root); - gtk_widget_realize_at_context (widget); - GTK_WIDGET_GET_CLASS (widget)->root (widget); if (!GTK_IS_ROOT (widget)) @@ -2454,12 +2460,6 @@ gtk_widget_unroot (GtkWidget *widget) GTK_WIDGET_GET_CLASS (widget)->unroot (widget); - if (priv->at_context != NULL) - { - gtk_at_context_set_display (priv->at_context, gdk_display_get_default ()); - gtk_at_context_unrealize (priv->at_context); - } - if (priv->context) gtk_style_context_set_display (priv->context, gdk_display_get_default ()); |