summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.cz>2013-06-11 09:19:03 +0200
committerJan Holesovsky <kendy@suse.cz>2013-06-11 07:55:35 +0000
commit41900bab0d07332aa720c92f787d90c4d8fff571 (patch)
tree8e2bac72c0f09cc1ea324e999806e3eea5b4559c
parentf8ec969ee5c69f46ad9667f4c708d1852b53edde (diff)
Revert "fix fdo#60533, Set TEXT_LAYOUT_BIDI_STRONG flag."
It caused some regressions. For example, see fdo65414 and fdo65562 This reverts commit 6708ad7f1baa8d4cef1718bdef1d26fb5d8510f3. Change-Id: I0108463c78bbcb48a4c218d78e51deaa39caec0c Reviewed-on: https://gerrit.libreoffice.org/4226 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com> Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Reviewed-by: Jan Holesovsky <kendy@suse.cz> Tested-by: Jan Holesovsky <kendy@suse.cz>
-rw-r--r--drawinglayer/source/processor2d/vclprocessor2d.cxx4
-rw-r--r--editeng/source/editeng/impedit3.cxx18
2 files changed, 15 insertions, 7 deletions
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 1a50490e039a..1dfc2f473ab7 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -268,8 +268,8 @@ namespace drawinglayer
if(rTextCandidate.getFontAttribute().getRTL())
{
- sal_uInt32 nRTLLayoutMode(nOldLayoutMode & ~(TEXT_LAYOUT_COMPLEX_DISABLED));
- nRTLLayoutMode |= TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG | TEXT_LAYOUT_TEXTORIGIN_LEFT;
+ sal_uInt32 nRTLLayoutMode(nOldLayoutMode & ~(TEXT_LAYOUT_COMPLEX_DISABLED|TEXT_LAYOUT_BIDI_STRONG));
+ nRTLLayoutMode |= TEXT_LAYOUT_BIDI_RTL|TEXT_LAYOUT_TEXTORIGIN_LEFT;
mpOutputDevice->SetLayoutMode(nRTLLayoutMode);
}
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 5fd836251b34..d56ea0e11faf 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -4306,13 +4306,18 @@ 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
@@ -4321,18 +4326,21 @@ void ImpEditEngine::ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt16 nPara,
sal_uLong nLayoutMode = pOutDev->GetLayoutMode();
// We always use the left postion for DrawText()
- // Let VCL do CTL checking
- nLayoutMode &= ~(TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_COMPLEX_DISABLED);
+ nLayoutMode &= ~(TEXT_LAYOUT_BIDI_RTL);
- if ( !bR2L )
+ if ( !bCTL && !bR2L)
{
// No CTL/Bidi checking neccessary
nLayoutMode |= ( TEXT_LAYOUT_COMPLEX_DISABLED | TEXT_LAYOUT_BIDI_STRONG );
}
else
{
- //Use BIDI_STRONG, Stop VCL to perform ubidi algo on text.
- nLayoutMode |= TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_TEXTORIGIN_LEFT | TEXT_LAYOUT_BIDI_STRONG;
+ // 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;
}
pOutDev->SetLayoutMode( nLayoutMode );