summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authornavin patidar <patidar@kacst.edu.sa>2013-02-10 09:40:50 +0300
committerLior Kaplan <kaplanlior@gmail.com>2013-03-14 18:17:23 +0200
commitfc7a1b54cf8edbc52fb48e89043d3b9f9a742a4b (patch)
treef76f18de4cda597b92b17eb59a1608d22922df2b /editeng
parentbdfab9e9f362512f42b040469633851ba4cfa255 (diff)
fix fdo#60533, Set TEXT_LAYOUT_BIDI_STRONG flag.
Stop ImplLayoutArgs::ImplLayoutArgs() to perform ubidi algo on text by setting TEXT_LAYOUT_BIDI_STRONG flag. Change-Id: I7222517c1db6649eef0c0d9c11cbbbed1fc6bb04 Reviewed-on: https://gerrit.libreoffice.org/2076 Reviewed-by: Ahmad Harthi <aalharthi@kacst.edu.sa> Tested-by: Ahmad Harthi <aalharthi@kacst.edu.sa> (cherry picked from commit 6708ad7f1baa8d4cef1718bdef1d26fb5d8510f3) Signed-off-by: Lior Kaplan <kaplanlior@gmail.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/impedit3.cxx18
1 files changed, 5 insertions, 13 deletions
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index bada916600a4..bcd3695b3da2 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -4299,18 +4299,13 @@ void ImpEditEngine::ImplInitDigitMode( OutputDevice* pOutDev, String* pString, x
void ImpEditEngine::ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt16 nPara, sal_uInt16 nIndex )
{
- sal_Bool bCTL = sal_False;
sal_Bool bR2L = sal_False;
if ( nIndex == 0xFFFF )
{
- bCTL = HasScriptType( nPara, i18n::ScriptType::COMPLEX );
bR2L = IsRightToLeft( nPara );
}
else
{
- ContentNode* pNode = GetEditDoc().GetObject( nPara );
- short nScriptType = GetScriptType( EditPaM( pNode, nIndex+1 ) );
- bCTL = nScriptType == i18n::ScriptType::COMPLEX;
// this change was discussed in issue 37190
bR2L = GetRightToLeft( nPara, nIndex + 1) % 2 ? sal_True : sal_False;
// it also works for issue 55927
@@ -4319,21 +4314,18 @@ void ImpEditEngine::ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt16 nPara,
sal_uLong nLayoutMode = pOutDev->GetLayoutMode();
// We always use the left postion for DrawText()
- nLayoutMode &= ~(TEXT_LAYOUT_BIDI_RTL);
+ // Let VCL do CTL checking
+ nLayoutMode &= ~(TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_COMPLEX_DISABLED);
- if ( !bCTL && !bR2L)
+ if ( !bR2L )
{
// No CTL/Bidi checking neccessary
nLayoutMode |= ( TEXT_LAYOUT_COMPLEX_DISABLED | TEXT_LAYOUT_BIDI_STRONG );
}
else
{
- // CTL/Bidi checking neccessary
- // Don't use BIDI_STRONG, VCL must do some checks.
- nLayoutMode &= ~( TEXT_LAYOUT_COMPLEX_DISABLED | TEXT_LAYOUT_BIDI_STRONG );
-
- if ( bR2L )
- nLayoutMode |= TEXT_LAYOUT_BIDI_RTL|TEXT_LAYOUT_TEXTORIGIN_LEFT;
+ //Use BIDI_STRONG, Stop VCL to perform ubidi algo on text.
+ nLayoutMode |= TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_TEXTORIGIN_LEFT | TEXT_LAYOUT_BIDI_STRONG;
}
pOutDev->SetLayoutMode( nLayoutMode );