Apache OpenOffice (AOO) Bugzilla – Issue 12888
Call SalGraphics::GetDevFontList() upon demand only
Last modified: 2003-04-29 12:48:24 UTC
Hi Phillip, Currently SalGraphics::GetDevFontList(), collecting the list of fonts installed on the system, is called from within the very first 'Window' constructor (in method 'Window::ImplInit()') to fill that list of fonts into the (static) 'Application' settings instance. As that very first Window happens to be the 'splash screen' / 'intro bitmap', which does not otherwise requests or needs any font, the font collection may delay the time of displaying the splash screen significantly, depending on how long the font collection actually takes. The second instance where GetDevFontList() is called, and which seems avoidable too, is via 'Application::MergeSystemSettings()', which constructs a Window instance via 'ImplGetDefaultWindow()'. Now this Window's 'ImplInit()' would call 'SalGraphics::GetDevFontList()' if the font list wouldn't have been feed into the Application settings before. The third instance where GetDevFontList() is called, is from within a Printer constructor, and only here it seems to be called on purpose / demand, but I'm not sure. All there occurrences do happen during startup while displaying the splash screen. For a better startup experience, calls to GetDevFontList() should be delayed as much as possible. In particular, the calls related to the Application setting should be removed. Thanks, Matthias
Added target milestone 'OOo 1.1 Beta2'.
will change "on demand" behaviour
I looked into this; as you said the IntroWindow does not really need the font list; Application::MergeSystemSettings on the other hand needs it since at this time the application font gets set (which is part of the Settings); if i delay GetDevFontList after this point i end up with a different font from what it should be. I currently don't see a feasible way around that. But at least it does not delay the IntroWindow anymore. Unless you disagree i consider this fixed in vcl07.
Hi Phillip, With the accompanying issue 12889 being fixed, I see no problem in the fix you provided for this issue. The only thing that possibly remains, is to think about the concept of an 'Application Font' as static data, and how much sense all this static stuff really makes. But we may leave this open for now. Thanks for investigating into this, Matthias
changes are in vcl07
Fix verified on 'cws_srx644_vcl07'.
Verified...
Verified integration into SRX644/m12s1 -> closing.