Compare commits

...

1 Commits

Author SHA1 Message Date
Arnaud Bonatti
95b26ac974 Demo CSS cache invalidation failure. 2020-04-18 13:18:06 +02:00
6 changed files with 187 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="64"
height="64"
id="svg9373"
inkscape:version="0.48.4 r9939"
sodipodi:docname="flag.svg">
<metadata
id="metadata9418">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9416" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="834"
id="namedview9414"
showgrid="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:zoom="1"
inkscape:cx="37.101481"
inkscape:cy="14.748665"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg9373">
<inkscape:grid
type="xygrid"
id="grid9641"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<linearGradient
id="paint"
gradientUnits="userSpaceOnUse"
x1="14.5"
y1="99"
x2="119.5"
y2="99">
<stop
offset="0"
style="stop-color:#DA1800"
id="stop9404" />
<stop
offset="0.33"
style="stop-color:#B42D2D"
id="stop9406" />
<stop
offset="0.66"
style="stop-color:#FA1818"
id="stop9408" />
<stop
offset="1"
style="stop-color:#B42D2D"
id="stop9410" />
</linearGradient>
<path
style="fill:#2e3436;fill-opacity:1;stroke-width:1;stroke-miterlimit:4"
d="M 8.086319,0.175024 17.084785,0 l 0,3.104056 L 58.104384,20.741065 17.040446,38.378074 16.99727,64 8,64 z"
id="path9621"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="161" height="161">
<rect x="102.67" y="19" fill="#777777" stroke="#000000" stroke-width="3" width="36.67" height="8"/>
<rect x="98.67" y="60" fill="#777777" stroke="#000000" stroke-width="3" width="42.31" height="8"/>
<rect x="94.67" y="99" fill="#777777" stroke="#000000" stroke-width="3" width="50.9" height="8"/>
<polygon fill="#404040" points="151.64,126.87 144.6,126.87 132.03,27.19 139.07,27.19"/>
<polygon fill="#777777" points="148.1,127.17 144.6,126.87 132.03,27.19 135.53,27.48"/>
<polygon fill="none" stroke="#000000" stroke-width="3" points="151.64,126.87 144.6,126.87 132.03,27.19 139.07,27.19"/>
<polygon fill="#404040" points="90.86,126.87 97.9,126.87 110.47,27.19 103.43,27.19"/>
<polygon fill="#777777" points="90.86,126.87 94.9,126.87 107.47,27.19 103.43,27.19"/>
<polygon fill="none" stroke="#000000" stroke-width="3" points="90.86,126.87 97.9,126.87 110.47,27.19 103.43,27.19"/>
<path fill="#404040" stroke="#404040" d="M154.18,121.94h-5.24c0,0,0.98,24.81-4.89,24.81c-5.87,0-44.99,0-50.86,0c-4.33,0-4.93-13.47-4.95-20.56c-0.02,8.28,0.51,25.81,5.38,25.81c6.38,0,48.87,0,55.24,0C155.25,152,154.18,121.94,154.18,121.94z"/>
<path fill="#777777" stroke="#777777" d="M93.2,146.75c5.87,0,44.99,0,50.86,0c5.87,0,4.89-24.81,4.89-24.81H88.32h-0.01c0,0-0.07,1.72-0.06,4.25C88.27,133.27,88.88,146.75,93.2,146.75z"/>
<path fill="none" stroke="#000000" stroke-width="3.5" d="M93.63,152c6.38,0,48.87,0,55.24,0c6.37,0,5.31-30.06,5.31-30.06H88.32C88.32,121.94,87.25,152,93.63,152z"/>
<rect x="118.5" y="23" fill="#777777" stroke="#000000" stroke-width="2" width="7" height="80"/>
<path fill="#FFFFFF" d="M91.57,137.06c-1.31-13.13-1.31-13.43,24.89-11.81C91.57,127.16,93.48,125.55,91.57,137.06z"/>
<linearGradient id="paint" gradientUnits="userSpaceOnUse" x1="14.5" y1="99" x2="119.5" y2="99">
<stop offset="0" style="stop-color:#DA1800"/>
<stop offset="0.33" style="stop-color:#B42D2D"/>
<stop offset="0.66" style="stop-color:#FA1818"/>
<stop offset="1" style="stop-color:#B42D2D"/>
</linearGradient>
<path fill="url(#paint)" stroke="#000000" stroke-width="6" d="M67.35,13.97c-13.99,13.43-51.85,0-51.85,0V60.6v47.93c0,0,37.86,13.43,51.85,0c14-13.43,53.15,0,53.15,0V60.6V13.97C120.5,13.97,81.35,0.54,67.35,13.97z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1688,6 +1688,43 @@ set_up_context_popover (GtkWidget *widget,
gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (gesture));
}
static void
cache_invalidation_test_first_init ()
{
GdkDisplay *display;
GtkIconTheme *icon_theme;
display = gdk_display_get_default ();
icon_theme = gtk_icon_theme_get_for_display (display);
gtk_icon_theme_add_resource_path (icon_theme, "/org/gtk/WidgetFactory4/theme1");
}
static void
on_cache_invalidation_test_toggled (GtkToggleButton *button,
gpointer user_data)
{
GdkDisplay *display;
GtkIconTheme *icon_theme;
char ***icon_resource_path;
guint length;
char **theme_path;
display = gdk_display_get_default ();
icon_theme = gtk_icon_theme_get_for_display (display);
icon_resource_path = gtk_icon_theme_get_resource_path (icon_theme);
length = g_strv_length (icon_resource_path);
theme_path = icon_resource_path [length - 1];
if (g_strcmp0 (theme_path, "/org/gtk/WidgetFactory4/theme2") == 0)
theme_path = "/org/gtk/WidgetFactory4/theme1";
else
theme_path = "/org/gtk/WidgetFactory4/theme2";
icon_resource_path[length - 1] = theme_path;
gtk_icon_theme_set_resource_path (icon_theme, icon_resource_path);
}
static void
activate (GApplication *app)
{
@@ -1752,9 +1789,12 @@ activate (GApplication *app)
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
cache_invalidation_test_first_init ();
builder = gtk_builder_new ();
scope = gtk_builder_cscope_new ();
gtk_builder_cscope_add_callback_symbols (GTK_BUILDER_CSCOPE (scope),
"on_cache_invalidation_test_toggled", (GCallback)on_cache_invalidation_test_toggled,
"on_entry_icon_release", (GCallback)on_entry_icon_release,
"on_scale_button_value_changed", (GCallback)on_scale_button_value_changed,
"on_record_button_toggled", (GCallback)on_record_button_toggled,

View File

@@ -24,3 +24,9 @@
.border-ridge {
border-width: 2px;
}
.cache-invalidation-test {
background-repeat:no-repeat;
background-image:-gtk-icontheme('flag');
background-position:center center;
}

View File

@@ -6,6 +6,12 @@
<gresource prefix="/org/gtk/WidgetFactory4">
<file>widget-factory.css</file>
</gresource>
<gresource prefix="/org/gtk/WidgetFactory4/theme1">
<file alias="flag.svg">data/themes/theme1/flag.svg</file>
</gresource>
<gresource prefix="/org/gtk/WidgetFactory4/theme2">
<file alias="flag.svg">data/themes/theme2/flag.svg</file>
</gresource>
<gresource prefix="/org/gtk/WidgetFactory4/gtk">
<file preprocess="xml-stripblanks">help-overlay.ui</file>
</gresource>

View File

@@ -879,6 +879,26 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<property name="halign">center</property>
</object>
</child>
<child>
<object class="GtkBox">
<child>
<object class="GtkToggleButton" id="cache_invalidation_test">
<property name="label">Test</property>
<property name="halign">fill</property>
<property name="hexpand">True</property>
<signal name="toggled" handler="on_cache_invalidation_test_toggled" swapped="no"/>
</object>
</child>
<child>
<object class="GtkButton">
<property name="halign">end</property>
<style>
<class name="cache-invalidation-test"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>