summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2020-11-15 15:59:31 +0100
committerChristoph Reiter <reiter.christoph@gmail.com>2020-11-15 15:59:31 +0100
commitb97b95b0c79547850bef7491fff0d9a3200a833b (patch)
tree3d08213a518a6fc538ce3ce777d6a42e8be875a2
parentdd0a854bbb1c20b33327df262afee15b3b110a47 (diff)
downloadgtk+-b97b95b0c79547850bef7491fff0d9a3200a833b.tar.gz
gtkwidget: fix crashes with GTK_A11Y=none
at_context can be NULL in that case, so guard against it. Fixes #3333
-rw-r--r--gtk/gtkwidget.c9
1 files 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 ());