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
This commit is contained in:
Maxim Monastirsky
2017-05-14 14:07:17 +03:00
parent b2bed3ef5e
commit b769152dca
2 changed files with 3 additions and 2 deletions
@@ -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;
@@ -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 )
{