summaryrefslogtreecommitdiffstats
path: root/vcl
diff options
context:
space:
mode:
authorIvan Timofeev <timofeev.i.s@gmail.com>2012-05-05 14:34:47 +0400
committerIvan Timofeev <timofeev.i.s@gmail.com>2012-05-05 14:36:32 +0400
commitc1ac12f52776c625c7a091ab864b9e99e3bc3d67 (patch)
treede7cad864a0f812602e70d2b0a6a46c0290d85da /vcl
parentDo not check for beanshell if not needed (diff)
downloadcore-c1ac12f52776c625c7a091ab864b9e99e3bc3d67.tar.gz
core-c1ac12f52776c625c7a091ab864b9e99e3bc3d67.zip
gtk: fix drawing of disabled menu-item checkmarks and submenu arrows
Change-Id: Ic9929de974b1dd806dee294e574ad9f561468eb4
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx20
1 files changed, 6 insertions, 14 deletions
diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 447ca9228f5e..7c06d6ade7b5 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -2851,19 +2851,15 @@ sal_Bool GtkSalGraphics::NWPaintGTKPopupMenu(
gWidgetData[m_nXScreen].gMenuItemCheckMenuWidget :
gWidgetData[m_nXScreen].gMenuItemRadioMenuWidget;
- GtkStateType nStateType = GTK_STATE_NORMAL;
+ GtkStateType nStateType;
GtkShadowType nShadowType;
+ NWConvertVCLStateToGTKState( nState, &nStateType, &nShadowType );
- if ( nState & CTRL_STATE_SELECTED )
+ if ( (nState & CTRL_STATE_SELECTED) && (nState & CTRL_STATE_ENABLED) )
nStateType = GTK_STATE_PRELIGHT;
NWSetWidgetState( pWidget, nState, nStateType );
- if ( nState & CTRL_STATE_PRESSED )
- nShadowType = GTK_SHADOW_IN;
- else
- nShadowType = GTK_SHADOW_OUT;
-
if ( nPart == PART_MENU_ITEM_CHECK_MARK )
{
gtk_paint_check( pWidget->style,
@@ -2899,20 +2895,16 @@ sal_Bool GtkSalGraphics::NWPaintGTKPopupMenu(
}
else if( nPart == PART_MENU_SUBMENU_ARROW )
{
- GtkStateType nStateType = GTK_STATE_NORMAL;
+ GtkStateType nStateType;
GtkShadowType nShadowType;
+ NWConvertVCLStateToGTKState( nState, &nStateType, &nShadowType );
- if ( nState & CTRL_STATE_SELECTED )
+ if ( (nState & CTRL_STATE_SELECTED) && (nState & CTRL_STATE_ENABLED) )
nStateType = GTK_STATE_PRELIGHT;
NWSetWidgetState( gWidgetData[m_nXScreen].gMenuItemMenuWidget,
nState, nStateType );
- if ( nState & CTRL_STATE_PRESSED )
- nShadowType = GTK_SHADOW_IN;
- else
- nShadowType = GTK_SHADOW_OUT;
-
GtkArrowType eArrow;
if( Application::GetSettings().GetLayoutRTL() )
eArrow = GTK_ARROW_LEFT;