diff options
-rw-r--r-- | framework/source/services/ContextChangeEventMultiplexer.cxx | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/framework/source/services/ContextChangeEventMultiplexer.cxx b/framework/source/services/ContextChangeEventMultiplexer.cxx index b64a4e131717..c6da6be6b0d1 100644 --- a/framework/source/services/ContextChangeEventMultiplexer.cxx +++ b/framework/source/services/ContextChangeEventMultiplexer.cxx @@ -163,11 +163,29 @@ void SAL_CALL ContextChangeEventMultiplexer::addContextChangeEventListener ( // the current context. if (rxEventFocus.is() && pFocusDescriptor!=nullptr) { + if (pFocusDescriptor->msCurrentApplicationName.isEmpty() && pFocusDescriptor->msCurrentContextName.isEmpty() + && rxEventFocus.is()) + { + Reference< lang::XServiceInfo > xServInfo( rxEventFocus, uno::UNO_QUERY_THROW ); + if( xServInfo.is() && xServInfo->getImplementationName() == "com.sun.star.comp.chart2.ChartController") + { + css::ui::ContextChangeEventObject aEvent ( + rxEventFocus, + "com.sun.star.chart2.ChartDocument", + "Chart"); + rxListener->notifyContextChangeEvent(aEvent); + + return; + } + + } + css::ui::ContextChangeEventObject aEvent ( - nullptr, - pFocusDescriptor->msCurrentApplicationName, - pFocusDescriptor->msCurrentContextName); + nullptr, + pFocusDescriptor->msCurrentApplicationName, + pFocusDescriptor->msCurrentContextName); rxListener->notifyContextChangeEvent(aEvent); + } } |