[V3dot10] [Fwd: Re: Font bugs]

Andreas Raab andreas.raab at gmx.de
Sun Jul 22 19:44:19 UTC 2007

And the last one...

-------- Original Message --------
Subject: Re: Font bugs
Date: Sun, 22 Jul 2007 12:25:30 -0700
From: Andreas Raab <andreas.raab at gmx.de>
To: Ralph Johnson <johnson at cs.uiuc.edu>
CC: Discussion about development of Squeak 3.10 
<v3dot10 at lists.squeakfoundation.org>
<e5fa86ac0707211310x72064424v3d492c10a3c7e416 at mail.gmail.com> 
<e5fa86ac0707220516v534ee775q612a3e7c723fc838 at mail.gmail.com>

Ralph Johnson wrote:
> "TextStyle default" starts out at Accuny12, which is based on
> StrikeFont.  But it eventually gets changed to BitstreamVeraSans,
> which is based on TTCFont.  If we want to avoid recursive fonts, the
> default textstyle should never be based on TTCFont.

That is needlessly restrictive. The problem isn't TTCFont; the problem
is that the installation of fallback fonts is wrong (see my previous
message). Some care must be taken to not introduce recursive links but
this is a problem that is explicitly created - the default (creation of
a fixed face font) works perfectly fine (we use truetype fonts inside
Qwaq for everything).

> It appears that enabling a tiny display has the side effect of setting
> the default font to BitstreamVeraSans.  And, setting the preferences
> back to its original value doesn't set the default font back.

Indeed, looking at the senders of tinyDisplay gets you to
Preferences>>smallLandFonts which is called from
Preferences>>displaySizeChanged (but the initialization is missing).
What a mess.

> So, I know a lot more than I used to, but I am not sue what to do.  Is
> it OK for the defaul textstyle to be BitstreamVeraSans?  If so, how
> can we prevent recursive fonts?  If not, what font should we get when
> we have a tiny display?

It's perfectly fine to have a default truetype textstyle. It is NEVER
okay to simply assume that TextStyle defaultFont is a proper font to use
as a fallback font. If you want to use a fallback font (other than a
fixed face font) you need to be explicit about that and you need to make
(manually) sure that creating this dependency doesn't create a cycle.
This is what's wrong with StrikeFont class>>setupDefaultFallbackFonts
which assumes that the default font is Accuny - which is okay as long as
Accuny is used explicitly and not via the assumption that the default
text style will always be Accuny.

   - Andreas

More information about the V3dot10 mailing list