From b769152dcafe2b12bd820587036cced0ec49ec4f Mon Sep 17 00:00:00 2001 From: Maxim Monastirsky Date: Sun, 14 May 2017 13:25:53 +0300 Subject: [PATCH] tdf#96444 Shortcuts are saved with non-parsed URL MenuBarManager overwrites the item URL with the parsed version. This causes the keyboard shortcuts of style commands to no longer be found on subsequent opening of the menu, because they have spaces, which in the parsed version were replaced with "%20". Change-Id: I80b559203742922f70b7cec54b5a5ae57d3ef7dd --- framework/inc/uielement/menubarmanager.hxx | 1 + framework/source/uielement/menubarmanager.cxx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/inc/uielement/menubarmanager.hxx b/framework/inc/uielement/menubarmanager.hxx index 7c363dc902e1..67f598247964 100644 --- a/framework/inc/uielement/menubarmanager.hxx +++ b/framework/inc/uielement/menubarmanager.hxx @@ -169,6 +169,7 @@ class MenuBarManager: sal_uInt16 nItemId; OUString aTargetFrame; OUString aMenuItemURL; + OUString aParsedItemURL; css::uno::Reference< css::frame::XStatusListener > xSubMenuManager; css::uno::Reference< css::frame::XDispatch > xMenuItemDispatch; css::uno::Reference< css::frame::XPopupMenuController > xPopupMenuController; diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 2e99be82a8bb..eadf7764af49 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -364,7 +364,7 @@ void SAL_CALL MenuBarManager::statusChanged( const FeatureStateEvent& Event ) for ( p = m_aMenuItemHandlerVector.begin(); p != m_aMenuItemHandlerVector.end(); ++p ) { MenuItemHandler* pMenuItemHandler = *p; - if ( pMenuItemHandler->aMenuItemURL == aFeatureURL ) + if ( pMenuItemHandler->aParsedItemURL == aFeatureURL ) { bool bCheckmark( false ); bool bMenuItemEnabled( m_pVCLMenu->IsItemEnabled( pMenuItemHandler->nItemId )); @@ -851,7 +851,7 @@ IMPL_LINK( MenuBarManager, Activate, Menu *, pMenu, bool ) if ( xMenuItemDispatch.is() ) { pMenuItemHandler->xMenuItemDispatch = xMenuItemDispatch; - pMenuItemHandler->aMenuItemURL = aTargetURL.Complete; + pMenuItemHandler->aParsedItemURL = aTargetURL.Complete; if ( !bPopupMenu ) {