summaryrefslogtreecommitdiff
path: root/framework/source/uielement
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/uielement')
-rw-r--r--framework/source/uielement/menubarmanager.cxx11
1 files changed, 11 insertions, 0 deletions
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 018518931cd4..0122c299b97d 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -336,8 +336,19 @@ void SAL_CALL MenuBarManager::statusChanged( const FeatureStateEvent& Event )
// Enable/disable item
if ( bEnabledItem != bMenuItemEnabled )
+ {
m_pVCLMenu->EnableItem( pMenuItemHandler->nItemId, bEnabledItem );
+ // Remove "checked" mark for disabled menu items.
+ // Initially disabled but checkable menu items do not receive
+ // checked/unchecked state, so can appear inconsistently after
+ // enabling/disabling. Since we can not pass checked state for disabled
+ // items, we will just reset checked state for them, anyway correct state
+ // will be transferred from controller once item enabled.
+ if ( !bEnabledItem && m_pVCLMenu->IsItemChecked( pMenuItemHandler->nItemId ) )
+ m_pVCLMenu->CheckItem( pMenuItemHandler->nItemId, false );
+ }
+
if ( Event.State >>= bCheckmark )
{
// Checkmark or RadioButton