Unicode display on Linux.
Richmond
richmondmathewson at gmail.com
Sun May 19 07:28:16 EDT 2013
Unicode display on Linux has been a BIG headache for me for about 3
years with no solution in sight.
The answer, perhaps inevitably, turns out to be very simple indeed.
-----------------------------------------------------------------------
The Problem.
I have a textField called "OOTPUT" and add incremental unicode
characters to it like this:
set the useUnicode to true
set the unicodeText of fld "OOTPUT" to the unicodeText of fld "OOTPUT" &
numToChar(XXXXX)
where 'XXXXX' is a unicode address.
On Macintosh and Windows XP [ see rampant road rage about what happens
on Windows Vista, 7 and 8 elsewhere ]
that works just as it should, and as each char is appended to the
textfield end-users can see that.
On ALL the Linux systems I have tried that yields an - apparently -
empty textField.
-----------------------------------------------------------------------
The Solution.
The textField isn't empty, just setting the chars to transparent, or the
same as the backgroundColor of the textField.
So, one has to do this:
set the useUnicode to true
set the unicodeText of fld "OOTPUT" to the unicodeText of fld "OOTPUT" &
numToChar(XXXXX)
set the textColor of fld "OOTPUT" to "black"
and this has to be done EVERY TIME a new char is appended.
Don't ask me why, because I don't know.
-------------------------------------------------------------------------
Of course this would not have caused me 3 years of teeth-gnashing had it
either been documented in the Documentation,
or, had one of the supposedly "great" Unicode experts who strut their
funky stuff on the Use-List and the Forums been able
to point this out.
------------------------------------------------------------------------
------------------------------------------------------------------------
While I'm "on a roll" I feel like sounding off again about the Windows
fiasco: it is a fiasco in several respects;
1. It really mucks up Unicode display,
and
2. Nobody on either the Use-List or the Forums seems to give a damn
about it except myself.
---------------------------------------------------------------------
The Problem.
Windows Vista, 7 and 8 substitute Windows system fonts in Unicode
textFields.
While this makes an aesthetic pig's breakfast out of things that is NOT
the most besetting problem.
The main problem comes about when a Livecode standalone leverages a
specialist font containing non-standard Unicode characters
stored in the Public Use Area:
Windows merrily substitutes all the Unicode chars it can substitute and
leaves any non-standard chars displayed
in the specialist font, resulting in a foul aesthetic mismatch.
Windows also imposes its own font kerning rules, over-riding any kerning
rules et up within an LC standalone ruining
font display.
--------------------------------------------------------------------
The Solution.
Dunno. Boycott Microsoft. Send Steve Ballmer a yellow rubber duck with
"forever yours" written on its bottom.
--------------------------------------------------------------------
Richmond.
More information about the use-livecode
mailing list