On May 23, 2009, at 7:13 PM, Krzysztof Kosiński wrote:
Jon A. Cruz wrote:
> The internal rendering (from a single icons.svg file) is 100%
> compatible with regular theming mechanisms of GTK apps.
It is not compatible with many convenient GTK APIs, for instance
Yes, it *IS* compatible with all of those GTK APIs.
I have seen it working with my own eyes
Did you even bother to test any of your assertions, or are you just
making blind guesses???
There is no way to convince
Gtk::IconTheme to fetch named icons from the monolithic file. One
stock icons for every icon used in the application or add builtin
the icon theme, but those approaches don't work with scalable icons.
Please review the code that is in play when icons.svg *is* used. It
does use the theme mechanism. Your assertion that there is *no* way
to do this is not true.
> The bigger problem is that the concept itself is wrong. The
> sized PNG versions were added as a work-around for systems that did
> not have librsvg to the latest version.
They are a workaround for systems that don't have librsvg at all,
don't like it. The real solution is to either bundle librsvg on those
systems, or write another GdkPixbuf loader for SVG that will use our
renderer. Those are the only ways to be able to use all the
for named icons. I would opt for the former because it is much less
has superior performance (librsvg is quite fast, in my tests it was
slightly faster than loading PNG icons).
No... those are *not* the only ways to do that.
Again, the current icons.svg file code *does* work with icons,
falling back, etc.
Here too is another key point I need to stress. You keep ignoring
this. Please listen this time
WE CAN NOT USE LIBRSVG TO GET FULL FEATURES OF SVG!!!!
That is *BY DESIGN* of librsvg. They have improved many things
recently, but they are intentionally *not* targeting full SVG support.
> Also.. the source SVG icons
> themselves were also dumbed down to work for librsvg, and thus lost
> some Inkscape features.
When I extracted icons from icons.svg, I had to modify exactly one
(randomize.svg). And in fact it was just fixing malformed markup
interpreted by Inkscape as correct. By the way, all other SVG icons in
existence are also "dumbed down" for librsvg, yet there are some
icon sets out there, so the limitations can't be that severe.
Here is another key point.
They did not break for *you* but they *DID* break for other people.
Please keep in mind that not everyone will be running the latest and
greatest versions of all libraries. You *must* keep cross-platform
support in mind for any code work you do on Inkscape. One of our key
promises is good cross-platform support.