diff options
author | Faisal M. Al-Otaibi <fmalotaibi@kacst.edu.sa> | 2014-02-23 09:41:15 +0300 |
---|---|---|
committer | Faisal M. Al-Otaibi <fmalotaibi@kacst.edu.sa> | 2014-02-23 09:51:10 +0300 |
commit | e5ebee7ebb8ad9fae9d50b0708dc120c1d2eb32c (patch) | |
tree | 859caa42b537bd50359c6fba3e660c56069e9fb4 /svx | |
parent | 18ab4793d96a4e33c3a11fe3b1dda52f217c6c16 (diff) |
fdo#74751: fix reverse base point diagram on RTL UI
Change-Id: I3f3f2d59952577b0533a9d8ef6d27af849bd6bdb
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/dialog/dlgctrl.cxx | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx index b0614b70d67d..abe121487cde 100644 --- a/svx/source/dialog/dlgctrl.cxx +++ b/svx/source/dialog/dlgctrl.cxx @@ -558,7 +558,9 @@ Point SvxRectCtl::SetActualRPWithoutInvalidate( RECT_POINT eNewRP ) if( (m_nState & CS_NOVERT) != 0 ) aPtNew.Y() = aPtMM.Y(); - eNewRP = GetRPFromPoint( aPtNew ); + // fdo#74751 this fix reverse base point on RTL UI. + bool bRTL = Application::GetSettings().GetLayoutRTL(); + eNewRP = GetRPFromPoint( aPtNew, bRTL ); eDefRP = eNewRP; eRP = eNewRP; @@ -621,19 +623,20 @@ Point SvxRectCtl::GetApproxLogPtFromPixPt( const Point& rPt ) const // Converts Point in RECT_POINT -RECT_POINT SvxRectCtl::GetRPFromPoint( Point aPt ) const +RECT_POINT SvxRectCtl::GetRPFromPoint( Point aPt, bool bRTL ) const { - if ( aPt == aPtLT) return RP_LT; - else if( aPt == aPtMT) return RP_MT; - else if( aPt == aPtRT) return RP_RT; - else if( aPt == aPtLM) return RP_LM; - else if( aPt == aPtRM) return RP_RM; - else if( aPt == aPtLB) return RP_LB; - else if( aPt == aPtMB) return RP_MB; - else if( aPt == aPtRB) return RP_RB; + RECT_POINT rPoint = RP_MM; // default - else - return RP_MM; // default + if ( aPt == aPtLT) rPoint = bRTL ? RP_RT : RP_LT; + else if( aPt == aPtMT) rPoint = RP_MT; + else if( aPt == aPtRT) rPoint = bRTL ? RP_LT : RP_RT; + else if( aPt == aPtLM) rPoint = bRTL ? RP_RM : RP_LM; + else if( aPt == aPtRM) rPoint = bRTL ? RP_LM : RP_RM; + else if( aPt == aPtLB) rPoint = bRTL ? RP_RB : RP_LB; + else if( aPt == aPtMB) rPoint = RP_MB; + else if( aPt == aPtRB) rPoint = bRTL ? RP_LB : RP_RB; + + return rPoint; } // Resets to the original state of the control |