diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c index 42d9eb6c6c..3567b3ed77 100644 --- a/gtk/gtkcssnode.c +++ b/gtk/gtkcssnode.c @@ -1432,6 +1432,7 @@ GtkStyleProviderPrivate * gtk_css_node_get_style_provider (GtkCssNode *cssnode) { GtkStyleProviderPrivate *result; + GtkSettings *settings; result = gtk_css_node_get_style_provider_or_null (cssnode); if (result) @@ -1440,7 +1441,11 @@ gtk_css_node_get_style_provider (GtkCssNode *cssnode) if (cssnode->parent) return gtk_css_node_get_style_provider (cssnode->parent); - return GTK_STYLE_PROVIDER_PRIVATE (_gtk_settings_get_style_cascade (gtk_settings_get_default (), 1)); + settings = gtk_settings_get_default (); + if (!settings) + return NULL; + + return GTK_STYLE_PROVIDER_PRIVATE (_gtk_settings_get_style_cascade (settings, 1)); } void diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c index 575e3ca46b..2d65b266db 100644 --- a/gtk/gtkcsswidgetnode.c +++ b/gtk/gtkcsswidgetnode.c @@ -235,6 +235,7 @@ gtk_css_widget_node_get_style_provider (GtkCssNode *node) GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (node); GtkStyleContext *context; GtkStyleCascade *cascade; + GtkSettings *settings; if (widget_node->widget == NULL) return NULL; @@ -243,6 +244,10 @@ gtk_css_widget_node_get_style_provider (GtkCssNode *node) if (context) return gtk_style_context_get_style_provider (context); + settings = gtk_widget_get_settings (widget_node->widget); + if (!settings) + return NULL; + cascade = _gtk_settings_get_style_cascade (gtk_widget_get_settings (widget_node->widget), gtk_widget_get_scale_factor (widget_node->widget)); return GTK_STYLE_PROVIDER_PRIVATE (cascade);