summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uui/source/interactionhandler.cxx24
1 files changed, 16 insertions, 8 deletions
diff --git a/uui/source/interactionhandler.cxx b/uui/source/interactionhandler.cxx
index 821b03e632a8..71f11eb33533 100644
--- a/uui/source/interactionhandler.cxx
+++ b/uui/source/interactionhandler.cxx
@@ -70,18 +70,26 @@ UUIInteractionHandler::initialize(
{
delete m_pImpl;
+ // The old-style InteractionHandler service supported a sequence of
+ // PropertyValue, while the new-style service now uses constructors to pass
+ // in Parent and Context values; for backwards compatibility, keep support
+ // for a PropertyValue sequence, too:
uno::Reference< awt::XWindow > xWindow;
rtl::OUString aContext;
- ::comphelper::NamedValueCollection aProperties( rArguments );
- if ( aProperties.has( "Parent" ) )
+ if (!((rArguments.getLength() == 1 && (rArguments[0] >>= xWindow)) ||
+ (rArguments.getLength() == 2 && (rArguments[0] >>= xWindow) &&
+ (rArguments[1] >>= aContext))))
{
- OSL_VERIFY( aProperties.get( "Parent" ) >>= xWindow );
+ ::comphelper::NamedValueCollection aProperties( rArguments );
+ if ( aProperties.has( "Parent" ) )
+ {
+ OSL_VERIFY( aProperties.get( "Parent" ) >>= xWindow );
+ }
+ if ( aProperties.has( "Context" ) )
+ {
+ OSL_VERIFY( aProperties.get( "Context" ) >>= aContext );
+ }
}
- if ( aProperties.has( "Context" ) )
- {
- OSL_VERIFY( aProperties.get( "Context" ) >>= aContext );
- }
-
m_pImpl = new UUIInteractionHelper(m_xServiceFactory, xWindow, aContext);
}