diff options
author | Oliver Braun <obr@openoffice.org> | 2001-05-07 05:39:41 +0000 |
---|---|---|
committer | Oliver Braun <obr@openoffice.org> | 2001-05-07 05:39:41 +0000 |
commit | 0c232d5edd50f9a140e4b76151a573842c6a5b59 (patch) | |
tree | df559db3424352d92812954ac5b45719ea1eeb3b | |
parent | 7d5ccbb84897170f028cdcde123153736e9d917b (diff) |
use Window::GetClipboard to retrieve the clipboard instance
-rw-r--r-- | svx/source/editeng/impedit2.cxx | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/svx/source/editeng/impedit2.cxx b/svx/source/editeng/impedit2.cxx index beea5d7a602d..03a2c61e74c6 100644 --- a/svx/source/editeng/impedit2.cxx +++ b/svx/source/editeng/impedit2.cxx @@ -2,9 +2,9 @@ * * $RCSfile: impedit2.cxx,v $ * - * $Revision: 1.28 $ + * $Revision: 1.29 $ * - * last change: $Author: mt $ $Date: 2001-04-19 14:16:33 $ + * last change: $Author: obr $ $Date: 2001-05-07 06:39:41 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -724,9 +724,8 @@ EditSelection ImpEditEngine::Paste( EditView* pView, BOOL bUseSpecial ) if ( pView->pImpEditView->DoSingleLinePaste() ) { uno::Reference< datatransfer::XTransferable > xDataObj; + uno::Reference< datatransfer::clipboard::XClipboard > xClipboard = pView->GetWindow()->GetClipboard(); - uno::Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - uno::Reference< datatransfer::clipboard::XClipboard > xClipboard( xMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.SystemClipboard" ) ), uno::UNO_QUERY ); if ( xClipboard.is() ) { const sal_uInt32 nRef = Application::ReleaseSolarMutex(); @@ -2829,8 +2828,14 @@ BOOL ImpEditEngine::HasData( ExchangeType eExchange ) if ( eExchange == EXCHANGE_CLIPBOARD ) { - uno::Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - uno::Reference< datatransfer::clipboard::XClipboard > xClipboard( xMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.SystemClipboard" ) ), uno::UNO_QUERY ); + uno::Reference< datatransfer::clipboard::XClipboard > xClipboard; + + DBG_ASSERT( GetActiveView(), "HasData: No active view!" ); + DBG_ASSERT( GetActiveView()->GetWindow, "HasData: Active view has no window!" ); + + if( GetActiveView() && GetActiveView()->GetWindow() ) + xClipboard = GetActiveView()->GetWindow()->GetClipboard(); + if ( xClipboard.is() ) { const sal_uInt32 nRef = Application::ReleaseSolarMutex(); @@ -2890,16 +2895,20 @@ void ImpEditEngine::CopyData( EditSelection aSelection, ExchangeType nType ) con if ( nType == EXCHANGE_CLIPBOARD ) { - // HACK: Hold Ref to System Clipboard - static uno::Reference< datatransfer::clipboard::XClipboard > xClipboard; - if ( !xClipboard.is() ) + uno::Reference< datatransfer::clipboard::XClipboard > xClipboard; + + DBG_ASSERT( GetActiveView(), "CopyData: No active view!" ); + DBG_ASSERT( GetActiveView()->GetWindow, "CopyData: Active view has no window!" ); + + if( GetActiveView() && GetActiveView()->GetWindow() ) + xClipboard = GetActiveView()->GetWindow()->GetClipboard(); + + if( xClipboard.is() ) { - uno::Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - xClipboard = uno::Reference< datatransfer::clipboard::XClipboard >( xMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.SystemClipboard" ) ), uno::UNO_QUERY ); + const sal_uInt32 nRef = Application::ReleaseSolarMutex(); + xClipboard->setContents( pDataObj, NULL ); + Application::AcquireSolarMutex( nRef ); } - const sal_uInt32 nRef = Application::ReleaseSolarMutex(); - xClipboard->setContents( pDataObj, NULL ); - Application::AcquireSolarMutex( nRef ); } else // DRAGSERVER { @@ -2920,9 +2929,14 @@ EditSelection ImpEditEngine::PasteData( EditPaM aPaM, ExchangeType eExchange, BO if ( eExchange == EXCHANGE_CLIPBOARD ) { uno::Reference< datatransfer::XTransferable > xDataObj; + uno::Reference< datatransfer::clipboard::XClipboard > xClipboard; + + DBG_ASSERT( GetActiveView(), "PasteData: No active view!" ); + DBG_ASSERT( GetActiveView()->GetWindow, "PasteData: Active view has no window!" ); + + if( GetActiveView() && GetActiveView()->GetWindow() ) + xClipboard = GetActiveView()->GetWindow()->GetClipboard(); - uno::Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - uno::Reference< datatransfer::clipboard::XClipboard > xClipboard( xMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.SystemClipboard" ) ), uno::UNO_QUERY ); if ( xClipboard.is() ) { const sal_uInt32 nRef = Application::ReleaseSolarMutex(); |