Henrik, all, thanks for your help with this. I've been away from the codeface for a while and haven't yet tried all of the fixes. I did get things rendering well by caching the form canvas and redrawing that when required (just as the HandMorph does - as I said, the rendering while dragging is always OK). Relevant code below:
drawOn: aCanvas super drawOn: aCanvas.
cachedCanvas isNil ifTrue: [ cachedCanvas := (aCanvas allocateForm: self bounds extent) getCanvas. self drawContentsOn: cachedCanvas. ]. aCanvas translucentImage: cachedCanvas form at: self bounds origin. <<<< Best David ------------------ David Harvey www.teamsandtechnology.com www.cateams.com @david_harvey On 7 April 2010 12:45, David Harvey <david@teamsandtechnology.com> wrote:
Hi list,
I'm writing a little charting morph, and while playing with rotating text for axis labels came across something which I've noted in Morphs text handling a couple of times.
If I apply a transform in a drawing operation, rotated text _appears_ to be drawn twice, slightly offset, giving a scrappy bold look. It seems only to do this when drawing on a form canvas that's backed onto the display: if you pick and drag the morph, the text is rendered beautifully.
The test morph attached isolates the problem. The transcript logging is an attempt to see what might be happening: looking at the output it appears that there are circumstances in which the during: block is invoked twice.
Any thoughts?
David
------------------ David Harvey www.teamsandtechnology.com www.cateams.com @david_harvey