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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
static gboolean
gtk_css_value_image_equal (const GtkCssValue *value1,
                           const GtkCssValue *value2)
{
  return _gtk_css_image_equal (value1->image, value2->image);
}