Kaydet (Commit) 942501b6 authored tarafından Noel Power's avatar Noel Power

fix for fdo#66718, access correct clipboard

Changes to use SystemClipboard::createUnix break some subtle behaviour
( or is it even misbehaviour ) that users of the service
"com.sun.star.datatransfer.clipboard.SystemClipboard" depend on.
When creating the SystemClipboard the arguments passed to
X11SalInstance::CreateClipboard(...) are used to access cached
instances. Previously the window clipboard was created with 'no'
params and then initialised ( via XInitialisation ) later
This ensured users creating the "css.datatransfer.clipboard.SystemClipboard"
with no paramaters immediately get that same clipboard. Note: creating
the SystemClipboard with no param seesm a sensible thing from an scripters
point of view as the params that would be required to match the correct
Clipboard seem rather difficult to access in an uno only world

Change-Id: Ib71d6744086d354025de4db62039b9a98f230eca
üst e8eda4e6
......@@ -8481,11 +8481,19 @@ uno::Reference< XClipboard > Window::GetClipboard()
try
{
uno::Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() );
Reference<XSystemClipboard> xSystemClipboard;
Reference<XSystemClipboard> xSystemClipboard = SystemClipboard::createDefault(xContext);
#if defined(UNX) && !defined(MACOSX) // unix clipboard needs to be initialized
xSystemClipboard = SystemClipboard::createUnix( xContext, Application::GetDisplayConnection(), "CLIPBOARD", vcl::createBmpConverter() );
#else
xSystemClipboard = SystemClipboard::createDefault(xContext);
uno::Reference< XInitialization > xInit = uno::Reference< XInitialization >( xSystemClipboard, UNO_QUERY );
if( xInit.is() )
{
Sequence< Any > aArgumentList( 3 );
aArgumentList[ 0 ] = makeAny( Application::GetDisplayConnection() );
aArgumentList[ 1 ] = makeAny( OUString("CLIPBOARD") );
aArgumentList[ 2 ] = makeAny( vcl::createBmpConverter() );
xInit->initialize( aArgumentList );
}
#endif
mpWindowImpl->mpFrameData->mxClipboard.set( xSystemClipboard, UNO_QUERY );
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment