<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Wed, 20 Mar 2019 at 13:16, David Edmundson <<a href="mailto:davidedmundson@kde.org">davidedmundson@kde.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Turning the list of differences into an actionable TODO list the<br>
following changes would be needed by both parties to have exact<br>
feature parity:<br>
<br>
GTK changes:<br>
 - Add 2 new CSS classes "bg", and "highlight"<br></blockquote><div><br></div>What would be the semantics of these two classes?</div><div class="gmail_quote"> </div><div class="gmail_quote">The main problem is that the re-coloring on icon loading is part of the public API:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><a href="https://developer.gnome.org/gtk3/stable/GtkIconTheme.html#gtk-icon-info-load-symbolic">https://developer.gnome.org/gtk3/stable/GtkIconTheme.html#gtk-icon-info-load-symbolic</a><br></div><div class="gmail_quote"><a href="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/gtkicontheme.h#L316-323">https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/gtkicontheme.h#L316-323</a></div><div class="gmail_quote"><br></div><div class="gmail_quote">and we cannot change that for GTK 3. For GTK 4 it would be possible to add more colors, but the API would get pretty busy.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Additionally, we use SVG recoloring as a fallback path, given the cost of loading SVG icons all over the place, and the optional dependency on librsvg; we generate pre-sized, recolored variants of the SVG icons re-encoded as specially crafted PNG files at build time for the assets that GTK itself ships:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><a href="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/encodesymbolic.c">https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/encodesymbolic.c</a></div><div class="gmail_quote"><br></div><div class="gmail_quote">the tool is also installed, so icon theme authors can re-encode their own symbolic assets.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">There's also the added fun that GTK may or may not support SVG assets depending on whether librsvg is installed. So we may be able recolor symbolic icons even if they are not actually SVG assets.<br></div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
 - apply SVG CSS injection to include non-symbolic icons. On icons<br>
that don't end in "-symbolic" we should set the foreground colour on<br>
the .fg class not to all SVG paths<br></blockquote></div><div class="gmail_quote"><br></div><div class="gmail_quote">The API for loading non-symbolic assets does not take colors, so we cannot apply a style class.<br></div><div class="gmail_quote"><br><div>In any case, could you open an issue at:</div><div><br></div><div>   <a href="https://gitlab.gnome.org/GNOME/gtk/issues/new">https://gitlab.gnome.org/GNOME/gtk/issues/new</a></div><div><br></div><div>and reference this thread?</div></div><div class="gmail_quote"><br></div><div class="gmail_quote">Ciao,</div><div class="gmail_quote"> Emmanuele.<br></div><div class="gmail_quote"><br clear="all"></div>-- <br><div dir="ltr" class="gmail_signature"><a href="https://www.bassi.io" target="_blank">https://www.bassi.io</a><br>[@] ebassi [@<a href="http://gmail.com" target="_blank">gmail.com</a>]</div></div></div></div></div>