View | Details | Raw Unified | Return to issue 74188
Collapse All | Expand All

(-)a/editeng/source/editeng/impedit2.cxx (-3 / +17 lines)
Lines 4213-4225 Link Here
4213
                long nPosInPortion = pLine->GetCharPosArray().GetObject( nPos );
4213
                long nPosInPortion = pLine->GetCharPosArray().GetObject( nPos );
4214
#else
4214
#else
4215
                // #i74188# (positioning the cursor after deleting components of combined indic characters)
4215
                // #i74188# (positioning the cursor after deleting components of combined indic characters)
4216
                sal_uInt16 nStartCalc = 0;
4217
                for (sal_uInt16 i = 0; i < nTextPortion; ++i)
4218
                {
4219
                    TextPortion *pTextPortion = pParaPortion->GetTextPortions().GetObject( i );
4220
                    nStartCalc += pTextPortion->GetLen();
4221
                }
4222
4216
                SvxFont aTmpFont( pParaPortion->GetNode()->GetCharAttribs().GetDefFont() );
4223
                SvxFont aTmpFont( pParaPortion->GetNode()->GetCharAttribs().GetDefFont() );
4224
4225
                GetRefDevice()->Push( PUSH_ALL );
4226
                ImplInitLayoutMode( GetRefDevice(), GetEditDoc().GetPos(pParaPortion->GetNode()), 0xFFFF );
4227
                ImplInitDigitMode( GetRefDevice(), 0, 0, 0, aTmpFont.GetLanguage() );
4228
                GetRefDevice()->SetMapMode( MAP_100TH_MM );
4229
4217
                SeekCursor( pParaPortion->GetNode(), nPos+1, aTmpFont );
4230
                SeekCursor( pParaPortion->GetNode(), nPos+1, aTmpFont );
4218
                aTmpFont.SetPhysFont( GetRefDevice() );
4231
                aTmpFont.SetPhysFont( GetRefDevice() );
4219
                ImplInitDigitMode( GetRefDevice(), 0, 0, 0, aTmpFont.GetLanguage() );
4232
                String sSegment(*pParaPortion->GetNode(), pLine->GetStart()+nStartCalc, nPos+1-nStartCalc);
4220
                String sSegment(*pParaPortion->GetNode(), pLine->GetStart(), nPos+1);
4221
                long nPosInPortion = aTmpFont.QuickGetTextSize( GetRefDevice(),
4233
                long nPosInPortion = aTmpFont.QuickGetTextSize( GetRefDevice(),
4222
                    sSegment, 0, nPos+1, NULL ).Width();
4234
                    sSegment, 0, nPos+1-nStartCalc, NULL ).Width();
4235
4236
		GetRefDevice()->Pop();
4223
#endif
4237
#endif
4224
4238
4225
				if ( !pPortion->IsRightToLeft() )
4239
				if ( !pPortion->IsRightToLeft() )

Return to issue 74188