Hello Frank Meies,
>
> I had a second look at the code. This is how it works: Painting is done
> in SwFntObj::DrawText(). The kern array is requested from the output
> device and the spacing values are added to the kern array. Having done
> this, the modified kern array is passed to the DrawTextArray() function
> of the output device.
>
> Cursor position calculation is done in SwFntObj::GetTextSize(). The kern
> array is requested from the output device. This gives us the cursor
> position without the justified alignment. The spacing for the justified
> alignment is added to the cursor position afterwards by calling the
> SwTxtPortion::CalcSpacing() function.

I tried to print the kernArray of DrawText, the return value of CalcSpacing, 
and the kernArray in the GetTextSize methods to see if there was something 
wrong. I cannot see anything amiss. The values seem to add up properly, i.e., 
adding the return value of CalcSpacing to the kernArray of GetTextSize gives 
approximately the same results as kernArray of DrawText itself.

This seems to point in another direction of enquiry: the fact that zoom level 
changes and sometimes corrects the rendered position of the cursor, tells 
that there must be something wrong somewhere else ... what do you think ?

Regards,
Rajeev J Sebastian

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to