summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;