Lines 83-88
Link Here
|
83 |
#include "swfntcch.hxx" // SwFontAccess |
83 |
#include "swfntcch.hxx" // SwFontAccess |
84 |
#include "flyfrm.hxx" |
84 |
#include "flyfrm.hxx" |
85 |
|
85 |
|
|
|
86 |
#include <com/sun/star/i18n/ScriptType.hdl> |
87 |
#include <com/sun/star/i18n/CharacterIteratorMode.hpp> |
88 |
#include "breakit.hxx" |
89 |
|
86 |
#if OSL_DEBUG_LEVEL > 1 |
90 |
#if OSL_DEBUG_LEVEL > 1 |
87 |
#include "txtpaint.hxx" |
91 |
#include "txtpaint.hxx" |
88 |
#endif |
92 |
#endif |
Lines 309-315
Link Here
|
309 |
nMaxY = pFrm->SwitchVerticalToHorizontal( nMaxY ); |
313 |
nMaxY = pFrm->SwitchVerticalToHorizontal( nMaxY ); |
310 |
|
314 |
|
311 |
sal_Bool bGoOn = sal_True; |
315 |
sal_Bool bGoOn = sal_True; |
312 |
xub_StrLen nOffset = rPos.nContent.GetIndex(); |
316 |
xub_StrLen nOffset = rPos.nContent.GetIndex(); |
|
|
317 |
|
318 |
// #i74188 Ensure that the cursor is not drawn inside a combined char |
319 |
const SwTxtNode* pTxtNd = ((const SwTxtFrm*)this)->GetTxtNode(); |
320 |
if( pTxtNd && ::com::sun::star::i18n::ScriptType::COMPLEX == |
321 |
pBreakIt->xBreak->getScriptType( pTxtNd->GetTxt(), nOffset ) ) |
322 |
{ |
323 |
sal_Int32 nCount = 1; |
324 |
const ::com::sun::star::lang::Locale &rLocale = |
325 |
pBreakIt->GetLocale( pTxtNd->GetLang( nOffset ) ); |
326 |
xub_StrLen nRight = (xub_StrLen)pBreakIt->xBreak->nextCharacters( |
327 |
pTxtNd->GetTxt(), nOffset, rLocale, |
328 |
::com::sun::star::i18n::CharacterIteratorMode::SKIPCELL, |
329 |
nCount, nCount ); |
330 |
|
331 |
xub_StrLen nLeft = (xub_StrLen)pBreakIt->xBreak->previousCharacters( |
332 |
pTxtNd->GetTxt(), nRight, rLocale, |
333 |
::com::sun::star::i18n::CharacterIteratorMode::SKIPCELL, |
334 |
nCount, nCount ); |
335 |
|
336 |
if ( ( nLeft != nOffset ) && ( nRight != nOffset ) ) |
337 |
{ |
338 |
nOffset = ( Abs( nRight - nOffset ) < Abs( nLeft - nOffset ) ) ? |
339 |
nRight : nLeft; |
340 |
} |
341 |
} |
342 |
|
313 |
xub_StrLen nNextOfst; |
343 |
xub_StrLen nNextOfst; |
314 |
|
344 |
|
315 |
do |
345 |
do |
Lines 1561-1567
Link Here
|
1561 |
} |
1591 |
} |
1562 |
else |
1592 |
else |
1563 |
{ |
1593 |
{ |
1564 |
SwTwips nSpace; |
1594 |
SwTwips nSpace(0); |
1565 |
if( FILL_TAB != rFill.Mode() ) |
1595 |
if( FILL_TAB != rFill.Mode() ) |
1566 |
{ |
1596 |
{ |
1567 |
static sal_Char __READONLY_DATA sDoubleSpace[] = " "; |
1597 |
static sal_Char __READONLY_DATA sDoubleSpace[] = " "; |