diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2020-11-15 15:59:31 +0100 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2020-11-15 15:59:31 +0100 |
commit | b97b95b0c79547850bef7491fff0d9a3200a833b (patch) | |
tree | 3d08213a518a6fc538ce3ce777d6a42e8be875a2 | |
parent | dd0a854bbb1c20b33327df262afee15b3b110a47 (diff) | |
download | gtk+-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.c | 9 |
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 ()); |