summaryrefslogtreecommitdiff
path: root/sw/source/core/txtnode/fntcache.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/txtnode/fntcache.cxx')
-rw-r--r--sw/source/core/txtnode/fntcache.cxx16
1 files changed, 7 insertions, 9 deletions
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 78a0f3bb5e..40b04898ba 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -481,6 +481,7 @@ static sal_Char __READONLY_DATA sStandardString[] = "Dies ist der Teststring";
pScrFont = pPrtFont;
FontMetric aMet = pPrt->GetFontMetric( );
+
bSymbol = RTL_TEXTENCODING_SYMBOL == aMet.GetCharSet();
if ( USHRT_MAX == nGuessedLeading )
@@ -2417,21 +2418,18 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDrawTextInfo &rInf )
sal_uInt16 nItrMode = i18n::CharacterIteratorMode::SKIPCELL;
sal_Int32 nDone = 0;
LanguageType aLang = LANGUAGE_NONE;
- sal_Bool bSkipCell = sal_False;
+ bool bSkipCharacterCells = false;
xub_StrLen nIdx = rInf.GetIdx();
xub_StrLen nLastIdx = nIdx;
const xub_StrLen nEnd = rInf.GetIdx() + rInf.GetLen();
- // skip character cells for complex scripts
- // --> OD 2009-10-14 #i105571# - skip also character cells for CJK
- if ( rInf.GetFont() &&
- ( SW_CTL == rInf.GetFont()->GetActual() ||
- SW_CJK == rInf.GetFont()->GetActual() ) &&
- pBreakIt->GetBreakIter().is() )
+ // --> OD 2009-12-29 #i105901#
+ // skip character cells for all script types
+ if ( pBreakIt->GetBreakIter().is() )
// <--
{
aLang = rInf.GetFont()->GetLanguage();
- bSkipCell = sal_True;
+ bSkipCharacterCells = true;
}
while ( ( nRight < long( rInf.GetOfst() ) ) && ( nIdx < nEnd ) )
@@ -2442,7 +2440,7 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDrawTextInfo &rInf )
// go to next character (cell).
nLastIdx = nIdx;
- if ( bSkipCell )
+ if ( bSkipCharacterCells )
{
nIdx = (xub_StrLen)pBreakIt->GetBreakIter()->nextCharacters( rInf.GetText(),
nIdx, pBreakIt->GetLocale( aLang ), nItrMode, 1, nDone );