diff options
Diffstat (limited to 'framework/source/uielement')
-rw-r--r-- | framework/source/uielement/menubarmanager.cxx | 11 |
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 |