<body><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
What's the image version you export your prefs from?<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 07.10.2017 14:15:46 schrieb Bob Arning <arning315@comcast.net>:</p>
<p><span style="font-family: Georgia">A bit more on what's happening</span></p>
<p><span style="font-family: Georgia">If the font used (the default font in the
example below) is a StrikeFont, then this<br>
</span></p>
<p><span style="font-family: Georgia">f1 _ Form extent: 100@100 depth: 32.<br>
f1 fillColor: Color green.<br>
Form allInstancesDo: [ :f | f hibernate].<br>
f1 getCanvas drawString: 'Black on green' in: (0@0 extent:
100@100) font: nil color: Color black.<br>
f1 asMorph openInWorld.<br>
</span></p>
<p>draws black text on a white rectangle on a larger green
rectangle. StrikeFonts are drawn (in depth 32, anyway) by a
primitive using rule 34. If the primitive fails, then #copyBits is
used character by character.<br>
</p>
primDisplayString: aString from: startIndex to: stopIndex map:
glyphMap xTable: xTable kern: kernDelta<br>
| ascii |<br>
<primitive:'primitiveDisplayString' module:'BitBltPlugin'><br>
startIndex to: stopIndex do:[:charIndex|<br>
ascii := (aString at: charIndex) asciiValue.<br>
glyphMap ifNotNil:[ascii := glyphMap at: ascii+1].<br>
sourceX := xTable at: ascii + 1.<br>
width := (xTable at: ascii + 2) - sourceX.<br>
self copyBits.<br>
destX := destX + width + kernDelta.<br>
].<br>
<br>
It seems like rule 34 is handled differently by
primitiveDisplayString and primitiveCopyBits. If I add code as
exists elsewhere to unhibernate forms and retry, all is working as
expected:<br>
<br>
primDisplayString: aString from: startIndex to: stopIndex map:
glyphMap xTable: xTable kern: kernDelta<br>
| ascii |<br>
<primitive:'primitiveDisplayString' module:'BitBltPlugin'><br>
(sourceForm isForm and: [sourceForm unhibernate]) ifTrue: [<br>
^self primDisplayString: aString from: startIndex to:
stopIndex map: glyphMap xTable: xTable kern: kernDelta<br>
].<br>
(destForm isForm and: [destForm unhibernate]) ifTrue: [<br>
^self primDisplayString: aString from: startIndex to:
stopIndex map: glyphMap xTable: xTable kern: kernDelta<br>
].<br>
(halftoneForm isForm and: [halftoneForm unhibernate]) ifTrue: [<br>
^self primDisplayString: aString from: startIndex to:
stopIndex map: glyphMap xTable: xTable kern: kernDelta<br>
].<br>
startIndex to: stopIndex do:[:charIndex|<br>
ascii := (aString at: charIndex) asciiValue.<br>
glyphMap ifNotNil:[ascii := glyphMap at: ascii+1].<br>
sourceX := xTable at: ascii + 1.<br>
width := (xTable at: ascii + 2) - sourceX.<br>
self copyBits.<br>
destX := destX + width + kernDelta.<br>
].<br>
<br>
<div class="moz-cite-prefix">On 10/6/17 10:59 PM, Bob Arning wrote:<br>
</div>
<blockquote type="cite" cite="mid:4a91c131-0650-c21b-60c5-39c95a3fdbc3@comcast.net">
<p><span style="font-family: Georgia">Here is a strange one. I noticed a few
morphs changing appearance after saving the image. It seems to
be related to the hibernation of Forms which happens prior to
saving the image. This snippet<br>
</span></p>
<p><span style="font-family: Georgia">(m := SimpleButtonMorph new)<br>
label: 'Black on yellow';<br>
color: Color yellow.<br>
Form allInstancesDo: [ :f | f hibernate]. "this happens
when saving image"<br>
m imageForm asMorph openInWorld</span></p>
<p>has a white background for the text with a bit of yellow
surrounding it. Running it in a clean 5.1 image gets the
expected result: black text on a yellow background. However, if
I load the preferences from my current image into the clean
image, then the problem occurs: black on white on yellow. My
prefs are attached if you would like to take a stab at it (and
if it isn't too large an attachment).</p>
<p><br>
</p>
</blockquote>
<br>
</blockquote>
</div></body>