On Apr 16, 2009, at 10:59 AM, Krzysztof Kosiński wrote:

Jon A. Cruz wrote:


So you've masked a symptom by layering on workarounds. However you  

did not actually fix a bug, and introduced several regressions and  

additional bugs.


That can actually be said of the code I removed. It was a very elaborate

wokraround for something that should be fixed properly (by properly, I mean

in much fewer lines of code). I did not introduce any workarounds. I have

also isolated the tiling bug and will commit a fix in a few hours.


OK. To clarify you did address some issues in the legacy Sodipodi icon parts. That was good. Thanks.

However, you undid three critical pieces of code that are used when icons.svg is involved. Now I know you wanted to remove that, but there are many reasons to keep it. Key among those are that using icons.svg does *not* prevent the use of stand-alone themes that you like, and that it makes for a safety fallback for when something when a theme does not have all of the latest and greatest. Oh, and we have users with custom icons.svg files other than the ones we ship, including some that users have done for accessibility reasons (aka there are people with visual handicaps and custom icons.svg files that *need* them to be able to use Inkscape)

The three key functional code areas removed were:

* Legacy name fallback. Among other things this allows users to have more than a single version of Inkscape installed on one system. Although you might not leverage this, many people (including myself) do. I have two or three different simultaneous installs on each of my two main dev boxes.

* 'smart' size caching. GTK+ themes can change on the fly, including *during* program start up. We have that scenario with our app (see the first sample in my mail "Two icon issues" for a sample). For certain icons and in certain scenarios this manifests as very tricky bugs.

* Background rendering of icons. I was asked a while back to add this feature. You don't miss it when you run with your themes, but when the internal rendering is used it really slows down the UI. It also slows initial appearance of menus the first time they are hit, and thus presents the user with a very negative "sluggish feel" when they first try the UI.


I do understand that the files involved have a lot of messy code that has accumulated over the years.  I'm finally at the point where I have time to updated some wiki documentation on this (taxes, work crunch, submitting papers for LinuxCon, coordinating for GSoC and tracking down problems to keep students from being disqualified, etc), so look for updates to appear there. I'll be sure to include some info on how to tell what was new functionality and what is outdated.


Also, it is *very* helpful if you can take the time to stop in the chat room (irc or jabber) and communicate with some of the other devs.

In general there is one bit of advice I can give. If you have someone report a bug, you really need to reproduce it locally before committing code fixes for them. Otherwise it's hard to know you're actually fixing the right issue. I think the blurry icon issue is one such.