static gboolean gtk_css_image_cross_fade_equal (GtkCssImage *image1, GtkCssImage *image2) { GtkCssImageCrossFade *cross_fade1 = GTK_CSS_IMAGE_CROSS_FADE (image1); GtkCssImageCrossFade *cross_fade2 = GTK_CSS_IMAGE_CROSS_FADE (image2); return cross_fade1->progress == cross_fade2->progress && _gtk_css_image_equal (cross_fade1->start, cross_fade2->start) && _gtk_css_image_equal (cross_fade1->end, cross_fade2->end); }
static GtkCssImage * gtk_css_image_real_transition (GtkCssImage *start, GtkCssImage *end, guint property_id, double progress) { if (progress <= 0.0) return g_object_ref (start); else if (progress >= 1.0) return end ? g_object_ref (end) : NULL; else if (_gtk_css_image_equal (start, end)) return g_object_ref (start); else return _gtk_css_image_cross_fade_new (start, end, progress); }
static gboolean gtk_css_value_image_equal (const GtkCssValue *value1, const GtkCssValue *value2) { return _gtk_css_image_equal (value1->image, value2->image); }