diff options
author | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-05-05 14:34:47 +0400 |
---|---|---|
committer | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-05-05 14:36:32 +0400 |
commit | c1ac12f52776c625c7a091ab864b9e99e3bc3d67 (patch) | |
tree | de7cad864a0f812602e70d2b0a6a46c0290d85da /vcl | |
parent | 0815a87c0c3fc1705170d8500056b2fae980e1e2 (diff) |
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.cxx | 20 |
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; |