diff options
Diffstat (limited to 'extensions/source/scanner/scanwin.cxx')
-rw-r--r-- | extensions/source/scanner/scanwin.cxx | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/extensions/source/scanner/scanwin.cxx b/extensions/source/scanner/scanwin.cxx index 002e69104152..5a8f242447a2 100644 --- a/extensions/source/scanner/scanwin.cxx +++ b/extensions/source/scanner/scanwin.cxx @@ -23,7 +23,7 @@ #include <com/sun/star/util/XCloseBroadcaster.hpp> #include <com/sun/star/util/XCloseListener.hpp> #include <com/sun/star/frame/XFrame.hpp> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <cppuhelper/implbase1.hxx> #include <comphelper/processfactory.hxx> @@ -565,44 +565,14 @@ uno::Reference< frame::XFrame > ImpTwain::ImplGetActiveFrame() { try { - uno::Reference< lang::XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() ); + // query desktop instance + uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create( ::comphelper::getProcessComponentContext() ); - if( xMgr.is() ) - { - // query desktop instance - uno::Reference< frame::XDesktop > xDesktop( xMgr->createInstance( - OUString("com.sun.star.frame.Desktop") ), uno::UNO_QUERY ); - - if( xDesktop.is() ) - { - // query property set from desktop, which contains the currently active frame - uno::Reference< beans::XPropertySet > xDesktopProps( xDesktop, uno::UNO_QUERY ); - - if( xDesktopProps.is() ) - { - uno::Any aActiveFrame; - - try - { - aActiveFrame = xDesktopProps->getPropertyValue( - OUString("ActiveFrame") ); - } - catch( const beans::UnknownPropertyException& ) - { - // property unknown. - OSL_FAIL("ImpTwain::ImplGetActiveFrame: ActiveFrame property unknown, cannot determine active frame!"); - return uno::Reference< frame::XFrame >(); - } + uno::Reference< frame::XFrame > xActiveFrame = xDesktop->getActiveFrame(); - uno::Reference< frame::XFrame > xActiveFrame; - - if( (aActiveFrame >>= xActiveFrame) && - xActiveFrame.is() ) - { - return xActiveFrame; - } - } - } + if( xActiveFrame.is() ) + { + return xActiveFrame; } } catch( const uno::Exception& ) |