diff options
Diffstat (limited to 'vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx')
-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; |