vcl/unx/gtk3/gtk3gtkinst.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+)
New commits: commit ed124c84c38237c8769b0685ba1e9b3dd87482de Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Nov 16 12:36:57 2020 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Nov 17 09:54:20 2020 +0100 tdf#138183 sync pending clipboard assign on clipboard ownership-change Change-Id: I325add499fbd4d11a942ce550346dcbcb5343e4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105862 Reviewed-by: Kevin Suo <suokunl...@126.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Jenkins diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 643ec0cac7f3..d3bad43b2052 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -750,6 +750,7 @@ public: void ClipboardClear(); void OwnerPossiblyChanged(GtkClipboard *clipboard); void SetGtkClipboard(); + void SyncGtkClipboard(); }; } @@ -835,6 +836,7 @@ namespace void VclGtkClipboard::OwnerPossiblyChanged(GtkClipboard* clipboard) { + SyncGtkClipboard(); // tdf#138183 do any pending SetGtkClipboard calls if (!m_aContents.is()) return; @@ -1049,6 +1051,17 @@ IMPL_LINK_NOARG(VclGtkClipboard, AsyncSetGtkClipboard, void*, void) SetGtkClipboard(); } +void VclGtkClipboard::SyncGtkClipboard() +{ + osl::ClearableMutexGuard aGuard(m_aMutex); + if (m_pSetClipboardEvent) + { + Application::RemoveUserEvent(m_pSetClipboardEvent); + m_pSetClipboardEvent = nullptr; + SetGtkClipboard(); + } +} + void VclGtkClipboard::SetGtkClipboard() { GtkClipboard* clipboard = gtk_clipboard_get(m_nSelection); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits