diff options
author | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2016-05-20 16:48:00 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-06-12 13:05:13 +0200 |
commit | 187b7cd5c729b5ea7b08be5cedddf8830f066ceb (patch) | |
tree | 04512a806491234cc04f6db171fe87786e0cf51a /framework | |
parent | 01499f93930c13e3f605b5c484cd5dcf3c1122bb (diff) |
framework: last dispatchInterceptor gets asked first
Align implementation with API contract as spelled out in
offapi/com/sun/star/frame/XDispatchProviderInterception.idl -
no idea why this change happenend in 2003:
Date: Fri Apr 4 16:16:05 2003 +0000
INTEGRATION: CWS fwk01 (1.1.72); FILE MERGED
2003/04/01 12:40:09 as 1.1.72.1: #107642# change order of used interception objects
At any rate, with this change extensions actually get a chance to
see dispatch requests first, and process/ignore at will.
Change-Id: I58876150ee6d67e592f41b3e82a9ffc314e091a3
Reviewed-on: https://gerrit.libreoffice.org/25215
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
(cherry picked from commit 08cf2fd01064306eef7fdbb5b62320947c4d1089)
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/dispatch/interceptionhelper.cxx | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/framework/source/dispatch/interceptionhelper.cxx b/framework/source/dispatch/interceptionhelper.cxx index 2a5be00c5417..affce9a2a45e 100644 --- a/framework/source/dispatch/interceptionhelper.cxx +++ b/framework/source/dispatch/interceptionhelper.cxx @@ -136,20 +136,19 @@ void SAL_CALL InterceptionHelper::registerDispatchProviderInterceptor(const css: // b) OK - there is at least one interceptor already registered. // It's slave and it's master must be valid references ... - // because we created it. But we have to look for the static bool which - // regulate direction of using of interceptor objects! + // because we created it. - // insert it behind any other existing interceptor - means at the end of our list. + // insert it before any other existing interceptor - means at the beginning of our list. else { - css::uno::Reference< css::frame::XDispatchProvider > xMasterD = m_lInterceptionRegs.rbegin()->xInterceptor; - css::uno::Reference< css::frame::XDispatchProviderInterceptor > xMasterI (xMasterD, css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XDispatchProvider > xSlaveD = m_lInterceptionRegs.begin()->xInterceptor; + css::uno::Reference< css::frame::XDispatchProviderInterceptor > xSlaveI (xSlaveD , css::uno::UNO_QUERY); - xInterceptor->setMasterDispatchProvider(xMasterD ); - xInterceptor->setSlaveDispatchProvider (m_xSlave ); - xMasterI->setSlaveDispatchProvider (aInfo.xInterceptor); + xInterceptor->setMasterDispatchProvider(xThis ); + xInterceptor->setSlaveDispatchProvider (xSlaveD ); + xSlaveI->setMasterDispatchProvider (aInfo.xInterceptor); - m_lInterceptionRegs.push_back(aInfo); + m_lInterceptionRegs.push_front(aInfo); } css::uno::Reference< css::frame::XFrame > xOwner(m_xOwnerWeak.get(), css::uno::UNO_QUERY); |