diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c index 5de2a94582..3b4186c74b 100644 --- a/gtk/gtkcssstylepropertyimpl.c +++ b/gtk/gtkcssstylepropertyimpl.c @@ -90,7 +90,7 @@ gtk_css_style_property_register (const char * name, node = g_object_new (GTK_TYPE_CSS_STYLE_PROPERTY, "value-type", value_type, - "affects-size", (affects & GTK_CSS_AFFECTS_SIZE) ? TRUE : FALSE, + "affects-size", (affects & (GTK_CSS_AFFECTS_CLIP | GTK_CSS_AFFECTS_SIZE)) ? TRUE : FALSE, "affects-font", (affects & GTK_CSS_AFFECTS_FONT) ? TRUE : FALSE, "animated", (flags & GTK_STYLE_PROPERTY_ANIMATED) ? TRUE : FALSE, "inherit", (flags & GTK_STYLE_PROPERTY_INHERIT) ? TRUE : FALSE, diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am index 47c4864c97..7479dae2ce 100644 --- a/testsuite/reftests/Makefile.am +++ b/testsuite/reftests/Makefile.am @@ -307,6 +307,9 @@ testdata = \ label-text-shadow-clipping.css \ label-text-shadow-clipping.ref.ui \ label-text-shadow-clipping.ui \ + label-text-shadow-changes-modify-clip.css \ + label-text-shadow-changes-modify-clip.ref.ui \ + label-text-shadow-changes-modify-clip.ui \ label-width-chars-dont-shrink.ref.ui \ label-width-chars-dont-shrink.ui \ label-wrap-justify.ref.ui \ @@ -478,6 +481,7 @@ libreftest_la_CFLAGS = $(gtk_reftest_CFLAGS) libreftest_la_LIBADD = $(gtk_reftest_LDADD) libreftest_la_SOURCES = \ expand-expander.c \ + label-text-shadow-changes-modify-clip.c \ set-default-direction.c \ statusbar-remove-all.c \ textview-border-windows.c \ diff --git a/testsuite/reftests/label-text-shadow-changes-modify-clip.c b/testsuite/reftests/label-text-shadow-changes-modify-clip.c new file mode 100644 index 0000000000..0507c36c44 --- /dev/null +++ b/testsuite/reftests/label-text-shadow-changes-modify-clip.c @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2014 Red Hat Inc. + * + * Author: + * Matthias Clasen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see . + */ + +#include "config.h" + +#include + +#include "gtk-reftest.h" + +static gboolean +tick_callback_for_1_frame (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer unused) +{ + reftest_uninhibit_snapshot (); + + return G_SOURCE_REMOVE; +} + +G_MODULE_EXPORT gboolean +inhibit_for_1_frame (GtkWidget *widget) +{ + reftest_inhibit_snapshot (); + gtk_widget_add_tick_callback (widget, + tick_callback_for_1_frame, + NULL, NULL); + + return FALSE; +} + +static gboolean +tick_callback_for_2_frames (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer unused) +{ + inhibit_for_1_frame (widget); + reftest_uninhibit_snapshot (); + + return G_SOURCE_REMOVE; +} + +G_MODULE_EXPORT gboolean +inhibit_for_2_frames (GtkWidget *widget) +{ + reftest_inhibit_snapshot (); + gtk_widget_add_tick_callback (widget, + tick_callback_for_2_frames, + NULL, NULL); + + return FALSE; +} + +static gboolean +tick_callback_for_3_frames (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer unused) +{ + inhibit_for_2_frames (widget); + reftest_uninhibit_snapshot (); + + return G_SOURCE_REMOVE; +} + +G_MODULE_EXPORT gboolean +inhibit_for_3_frames (GtkWidget *widget) +{ + reftest_inhibit_snapshot (); + gtk_widget_add_tick_callback (widget, + tick_callback_for_3_frames, + NULL, NULL); + + return FALSE; +} diff --git a/testsuite/reftests/label-text-shadow-changes-modify-clip.css b/testsuite/reftests/label-text-shadow-changes-modify-clip.css new file mode 100644 index 0000000000..87bd265191 --- /dev/null +++ b/testsuite/reftests/label-text-shadow-changes-modify-clip.css @@ -0,0 +1,19 @@ +@import "reset-to-defaults.css"; + +@keyframes foo { + 0% { text-shadow: 20px 20px tomato; } + 100% { text-shadow: 20px 20px tomato; } +} + +GtkLabel { + font-size: 40px; + animation-name: foo; + animation-duration: 100s; + animation-timing-function: linear; + animation-delay: 1ms; +} + +#reference { + animation: initial; + text-shadow: 20px 20px tomato; +} diff --git a/testsuite/reftests/label-text-shadow-changes-modify-clip.ref.ui b/testsuite/reftests/label-text-shadow-changes-modify-clip.ref.ui new file mode 100644 index 0000000000..85245c16fe --- /dev/null +++ b/testsuite/reftests/label-text-shadow-changes-modify-clip.ref.ui @@ -0,0 +1,21 @@ + + + + + + 500 + 100 + False + popup + + + True + False + Hello World + + + + + diff --git a/testsuite/reftests/label-text-shadow-changes-modify-clip.ui b/testsuite/reftests/label-text-shadow-changes-modify-clip.ui new file mode 100644 index 0000000000..0d029fd0a2 --- /dev/null +++ b/testsuite/reftests/label-text-shadow-changes-modify-clip.ui @@ -0,0 +1,33 @@ + + + + + + 500 + 100 + False + popup + + + + True + False + center + center + vertical + + + True + False + Hello World + + + False + True + 0 + + + + + +