css: Fix segfault when GtkCssStyleChange is NULL on gtk_widget_real_style_updated()
https://bugzilla.gnome.org/show_bug.cgi?id=791281
This commit is contained in:
		
				
					committed by
					
						
						Matthias Clasen
					
				
			
			
				
	
			
			
			
						parent
						
							c9a54ba1c2
						
					
				
				
					commit
					7e253f4bd3
				
			@ -8162,12 +8162,15 @@ static void
 | 
				
			|||||||
gtk_widget_real_style_updated (GtkWidget *widget)
 | 
					gtk_widget_real_style_updated (GtkWidget *widget)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkWidgetPrivate *priv = widget->priv;
 | 
					  GtkWidgetPrivate *priv = widget->priv;
 | 
				
			||||||
 | 
					  GtkCssStyleChange *change = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gtk_widget_update_alpha (widget);
 | 
					  gtk_widget_update_alpha (widget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (widget->priv->context)
 | 
					  if (widget->priv->context)
 | 
				
			||||||
 | 
					    change = gtk_style_context_get_change (widget->priv->context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (change)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      GtkCssStyleChange *change = gtk_style_context_get_change (widget->priv->context);
 | 
					 | 
				
			||||||
      const gboolean has_text = gtk_widget_peek_pango_context (widget) != NULL;
 | 
					      const gboolean has_text = gtk_widget_peek_pango_context (widget) != NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT))
 | 
					      if (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT))
 | 
				
			||||||
@ -8175,8 +8178,7 @@ gtk_widget_real_style_updated (GtkWidget *widget)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      if (widget->priv->anchored)
 | 
					      if (widget->priv->anchored)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          if (change == NULL ||
 | 
					          if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
 | 
				
			||||||
              gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
 | 
					 | 
				
			||||||
              (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_SIZE)))
 | 
					              (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_SIZE)))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              gtk_widget_queue_resize (widget);
 | 
					              gtk_widget_queue_resize (widget);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user