bulia byak wrote:
Jon,
in today's CVS:
- There's a noticeable delay after the program window appears and
before it shows icons in toolbars. It never happened before.
Yes.
Prior to this, all the icons were rendered and cached when the SPIcons
were created during program initialization. Now they're not rendered
untill they are actually realized (how GtkImage does it). The delay is
them being rendered for the first time.
I was thinking that we'd need some sort of pre-render to go back in. The
main problem, though, is that it's not that simple. At program launch
(when the prior versions would pre-render) the theme is not yet in
place. So a theme change occurrs *after* initial creation, and thus
invalidates much of the cached contents. Among other things, that was
why the stock icons like file|open would always pull the fallback GTK+
versions even though the current default theme had different icons for that.
Also complicating it is that the only way to detect a 'theme change' at
the moment is when the individual SPIcon widgets themselves get notified
of a style change. They respond to that change by invalidating their
internal bitmap and thus marking itself to be re-rendered at next 'expose'.
For the short term, we could pre-cache some at initialization since our
SVG icons now are only getting the size from the current theme, thus
good chances that some sizes will be the same. But moving forwards we'll
probably want to get something a little more robust, and also allow our
SVG icons to get colored by the current theme, etc.
- You removed the possibility for toolbars to be cut. Why? Now the
window starts up wider than before, and if we add more controls to the
selector toolbar it will have to be wider still. Moreover switching
tools (e.g. switch to star) may resize the window, which is very
annoying. Please fix this.
The hardcoding shortcut was what happened to allow cutting previously.
Getting rid of the 'naughty' code happened to get rid of that benefitial
side-effect. So I just need to track down a proper way to allow that to
happen. Just like with the toolbox heights, I'll replace the physical
with some logical. The old height way was "set all toolbars to a minimum
of XX pixels". The new height way is "set all these toolbox widgets to
get the height desired by the largest". That's what I mean by physical
versus logical.
Besides, you removed the only place where the "detach" flag
was
checked but did not remove its setting. This flag was added to make
sure a detached toolbar is not cut while the attached one may be cut
by the window. I think this must be restored.
Yes. It might be needed. But then again it might not. Once I track down
a better way of handling that, then we'll see what's needed. Often
things just start working better. It's just the transition from physical
to logical that gets a little tough.
BTW, that does bring up a related 'cut' issue. The vertical toobox has
major problems. You've never seen it need to be cut before, but when I
switch to 'Large Print' it ends up too large vertically for my screen,
and the entire status bar gets pushed off. And that's without even
switching to the large font the theme recommends.
Would we want to get some kind of "scroll if too many things" going on
there? Any other standard UI approach that would work out better? I do
think that this could be similar to the problem with horizontal cutting.