[gtk: 1/2] gtkwidget: fix crashes with GTK_A11Y=none




commit b97b95b0c79547850bef7491fff0d9a3200a833b
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Sun Nov 15 15:59:31 2020 +0100

    gtkwidget: fix crashes with GTK_A11Y=none
    
    at_context can be NULL in that case, so guard against it.
    
    Fixes #3333

 gtk/gtkwidget.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index b71ae1a822..0b663d98dd 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -2309,7 +2309,7 @@ gtk_widget_realize_at_context (GtkWidget *self)
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (self);
   GtkAccessibleRole role = priv->accessible_role;
 
-  if (gtk_at_context_is_realized (priv->at_context))
+  if (priv->at_context == NULL || gtk_at_context_is_realized (priv->at_context))
     return;
 
   /* Realize the root ATContext first */
@@ -2383,8 +2383,11 @@ gtk_widget_unroot (GtkWidget *widget)
 
   GTK_WIDGET_GET_CLASS (widget)->unroot (widget);
 
-  gtk_at_context_set_display (priv->at_context, gdk_display_get_default ());
-  gtk_at_context_unrealize (priv->at_context);
+  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 ());


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