vcl/source/window/menu.cxx | 5 ++++- vcl/win/source/gdi/salnativewidgets-luna.cxx | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-)
New commits: commit 3a603d376a2bc2b839be3b89a8ecf8df1c42260b Author: Ivan Timofeev <timofeev....@gmail.com> Date: Sat Apr 14 20:51:20 2012 +0400 vcl: win: adjust some coordinates diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx index 3b0051a..888b1a7 100644 --- a/vcl/win/source/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx @@ -986,7 +986,7 @@ sal_Bool ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, RECT aGutterRC = rc; if( Application::GetSettings().GetLayoutRTL() ) { - aGutterRC.right -= aValue.getNumericVal(); + aGutterRC.right -= aValue.getNumericVal()+1; aGutterRC.left = aGutterRC.right-3; } else @@ -1043,9 +1043,9 @@ sal_Bool ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, { // adjust for gutter position if( Application::GetSettings().GetLayoutRTL() ) - rc.right -= aValue.getNumericVal(); + rc.right -= aValue.getNumericVal()+1; else - rc.left += aValue.getNumericVal(); + rc.left += aValue.getNumericVal()+1; Rectangle aRect( ImplGetThemeRect( hTheme, hDC, MENU_POPUPSEPARATOR, 0, Rectangle( rc.left, rc.top, rc.right, rc.bottom ) ) ); // center the separator inside the passed rectangle commit 7179a362dd5788c4c4f7197d15abfa17e0cad584 Author: Ivan Timofeev <timofeev....@gmail.com> Date: Sat Apr 14 20:48:11 2012 +0400 vcl: win: fix RTL checkmark backgrounds fdo#42537 diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx index bcf80cd..3b0051a 100644 --- a/vcl/win/source/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx @@ -1015,13 +1015,18 @@ sal_Bool ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, if( aValue.getType() == CTRL_MENU_POPUP ) { const MenupopupValue& rMVal( static_cast<const MenupopupValue&>(aValue) ); - aBGRect.left = rMVal.maItemRect.Left(); aBGRect.top = rMVal.maItemRect.Top(); aBGRect.bottom = rMVal.maItemRect.Bottom()+1; // see below in drawNativeControl - aBGRect.right = rMVal.getNumericVal(); - - // FIXME: magic - aBGRect.left += 1; aBGRect.top += 1; aBGRect.bottom +=1; + if( Application::GetSettings().GetLayoutRTL() ) + { + aBGRect.right = rMVal.maItemRect.Right()+1; + aBGRect.left = aBGRect.right - (rMVal.getNumericVal()-rMVal.maItemRect.Left()); + } + else + { + aBGRect.right = rMVal.getNumericVal(); + aBGRect.left = rMVal.maItemRect.Left(); + } } iState = (nState & CTRL_STATE_ENABLED) ? MCB_NORMAL : MCB_DISABLED; ImplDrawTheme( hTheme, hDC, MENU_POPUPCHECKBACKGROUND, iState, aBGRect, aCaption ); commit 532904765073c827bed3181d97c217909db1843f Author: Ivan Timofeev <timofeev....@gmail.com> Date: Sat Apr 14 20:42:23 2012 +0400 vcl: hack: pData->aSz.Width() is set only for MenuBar, use aOutSz.Width() diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 73283f3..eaca00d 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2751,7 +2751,10 @@ void Menu::ImplPaint( Window* pWin, sal_uInt16 nBorder, long nStartY, MenuItemDa aTmpPos.Y() = aOuterCheckRect.Top() + (aOuterCheckRect.GetHeight() - nCtrlHeight)/2; Rectangle aCheckRect( aTmpPos, Size( nCtrlHeight, nCtrlHeight ) ); - MenupopupValue aVal( nTextPos-GUTTERBORDER, Rectangle( aPos, pData->aSz ) ); + Size aSz( pData->aSz ); + aSz.Width() = aOutSz.Width() - 2*nOuterSpace; + Rectangle aItemRect( aPos, aSz ); + MenupopupValue aVal( nTextPos-GUTTERBORDER, aItemRect ); pWin->DrawNativeControl( CTRL_MENU_POPUP, nPart, aCheckRect, nState, _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits