summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/source/uielement/toolbarmanager.cxx28
1 files changed, 21 insertions, 7 deletions
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index fbb13018278f..ac021706db35 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -331,13 +331,27 @@ void ToolBarManager::RefreshImages()
if ( nId > 0 )
{
- OUString aCommandURL = m_pToolBar->GetItemCommand( nId );
- Image aImage = GetImageFromURL( m_xFrame, aCommandURL, bBigImages );
- // Try also to query for add-on images before giving up and use an
- // empty image.
- if ( !aImage )
- aImage = QueryAddonsImage( aCommandURL, bBigImages );
- m_pToolBar->SetItemImage( nId, aImage );
+ ToolBarControllerMap::const_iterator pIter = m_aControllerMap.find( nId );
+ if ( pIter != m_aControllerMap.end() )
+ {
+ Reference< XSubToolbarController > xController( pIter->second, UNO_QUERY );
+ if ( xController.is() && xController->opensSubToolbar() )
+ {
+ // The button should show the last function that was selected from the
+ // dropdown. The controller should know better than us what it was.
+ xController->updateImage();
+ }
+ else
+ {
+ OUString aCommandURL = m_pToolBar->GetItemCommand( nId );
+ Image aImage = GetImageFromURL( m_xFrame, aCommandURL, bBigImages );
+ // Try also to query for add-on images before giving up and use an
+ // empty image.
+ if ( !aImage )
+ aImage = QueryAddonsImage( aCommandURL, bBigImages );
+ m_pToolBar->SetItemImage( nId, aImage );
+ }
+ }
}
}