include/svx/dlgctrl.hxx | 2 +- svx/source/dialog/dlgctrl.cxx | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-)
New commits: commit 1027e2be99f133ea30e5b81bf65b1c301a0a5866 Author: Faisal M. Al-Otaibi <fmalota...@kacst.edu.sa> Date: Mon Feb 24 10:35:36 2014 +0300 fdo#74751: fix reverse base point diagram on RTL UI Change-Id: Ib8e9f40b5576116f0220ffa70390f95b28c8bae0 Reviewed-on: https://gerrit.libreoffice.org/8200 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx index 6cca020..b6434b7 100644 --- a/include/svx/dlgctrl.hxx +++ b/include/svx/dlgctrl.hxx @@ -88,7 +88,7 @@ protected: sal_Bool mbCompleteDisable; - RECT_POINT GetRPFromPoint( Point ) const; + RECT_POINT GetRPFromPoint( Point, bool bRTL = false ) const; Point GetPointFromRP( RECT_POINT ) const; void SetFocusRect( const Rectangle* pRect = NULL ); // pRect == NULL -> calculate rectangle in method Point SetActualRPWithoutInvalidate( RECT_POINT eNewRP ); // returns the last point diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx index 330a9c9..61f6bd1 100644 --- a/svx/source/dialog/dlgctrl.cxx +++ b/svx/source/dialog/dlgctrl.cxx @@ -571,7 +571,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; @@ -627,19 +629,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
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits