--- a/editeng/source/editeng/impedit2.cxx Sun Apr 25 15:43:24 2010 +0100 +++ a/editeng/source/editeng/impedit2.cxx Mon Apr 26 15:08:39 2010 +0100 @@ -4198,7 +4198,17 @@ DBG_ERROR("svx::ImpEditEngine::GetXPos(), index out of range!"); } +#if 0 long nPosInPortion = pLine->GetCharPosArray().GetObject( nPos ); +#else + SvxFont aTmpFont( pParaPortion->GetNode()->GetCharAttribs().GetDefFont() ); + SeekCursor( pParaPortion->GetNode(), nPos+1, aTmpFont ); + aTmpFont.SetPhysFont( GetRefDevice() ); + ImplInitDigitMode( GetRefDevice(), 0, 0, 0, aTmpFont.GetLanguage() ); + String sSegment(*pParaPortion->GetNode(), pLine->GetStart(), nPos+1); + long nPosInPortion = aTmpFont.QuickGetTextSize( GetRefDevice(), + sSegment, 0, nPos+1, NULL ).Width(); +#endif if ( !pPortion->IsRightToLeft() ) {