tdf#122042: It's two clipboards, actually
Change-Id: I0e975bb73211b1d4ddb2e721659f64b361d11322
(cherry picked from commit f89cf70331c5e493f26e292fd0d7796214efea55)
Reviewed-on: https://gerrit.libreoffice.org/65167
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
diff --git a/vcl/inc/qt5/Qt5Instance.hxx b/vcl/inc/qt5/Qt5Instance.hxx
index d848ff2..91682bd 100644
--- a/vcl/inc/qt5/Qt5Instance.hxx
+++ b/vcl/inc/qt5/Qt5Instance.hxx
@@ -40,7 +40,7 @@ class VCLPLUG_QT5_PUBLIC Qt5Instance : public QObject,
osl::Condition m_aWaitingYieldCond;
int m_postUserEventId;
const bool m_bUseCairo;
css::uno::Reference<css::uno::XInterface> m_xClipboard;
std::unordered_map<OUString, css::uno::Reference<css::uno::XInterface>> m_aClipboards;
public:
std::unique_ptr<QApplication> m_pQApplication;
diff --git a/vcl/qt5/Qt5Instance.cxx b/vcl/qt5/Qt5Instance.cxx
index 1acf49d..2e21f25 100644
--- a/vcl/qt5/Qt5Instance.cxx
+++ b/vcl/qt5/Qt5Instance.cxx
@@ -244,14 +244,17 @@ Qt5Instance::CreateClipboard(const css::uno::Sequence<css::uno::Any>& arguments)
css::uno::Reference<css::uno::XInterface>(), -1);
}
if (!m_xClipboard.is())
auto it = m_aClipboards.find(sel);
if (it != m_aClipboards.end())
{
css::uno::Reference<css::uno::XInterface> xClipboard(
static_cast<cppu::OWeakObject*>(new VclQt5Clipboard()));
m_xClipboard = xClipboard;
return it->second;
}
return m_xClipboard;
css::uno::Reference<css::uno::XInterface> xClipboard(
static_cast<cppu::OWeakObject*>(new VclQt5Clipboard()));
m_aClipboards[sel] = xClipboard;
return xClipboard;
}
Reference<XInterface> Qt5Instance::CreateDragSource()