From: Marc-André Lureau Date: Thu, 5 Aug 2021 13:57:04 +0000 (+0400) Subject: ui/clipboard: add qemu_clipboard_peer_release() helper X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=1387865eca16984fc6d57702ac9e999527681b22;p=qemu.git ui/clipboard: add qemu_clipboard_peer_release() helper Signed-off-by: Marc-André Lureau Message-Id: <20210805135715.857938-8-marcandre.lureau@redhat.com> Acked-by: Gerd Hoffmann --- diff --git a/include/ui/clipboard.h b/include/ui/clipboard.h index 25e0b470c8..6298986b15 100644 --- a/include/ui/clipboard.h +++ b/include/ui/clipboard.h @@ -120,6 +120,17 @@ void qemu_clipboard_peer_unregister(QemuClipboardPeer *peer); bool qemu_clipboard_peer_owns(QemuClipboardPeer *peer, QemuClipboardSelection selection); +/** + * qemu_clipboard_peer_release + * + * @peer: peer information. + * @selection: clipboard selection. + * + * If the peer owns the clipboard, release it. + */ +void qemu_clipboard_peer_release(QemuClipboardPeer *peer, + QemuClipboardSelection selection); + /** * qemu_clipboard_info * diff --git a/ui/clipboard.c b/ui/clipboard.c index 490c3220f4..c277247a7f 100644 --- a/ui/clipboard.c +++ b/ui/clipboard.c @@ -24,6 +24,18 @@ bool qemu_clipboard_peer_owns(QemuClipboardPeer *peer, return info && info->owner == peer; } +void qemu_clipboard_peer_release(QemuClipboardPeer *peer, + QemuClipboardSelection selection) +{ + g_autoptr(QemuClipboardInfo) info = NULL; + + if (qemu_clipboard_peer_owns(peer, selection)) { + /* set empty clipboard info */ + info = qemu_clipboard_info_new(NULL, selection); + qemu_clipboard_update(info); + } +} + void qemu_clipboard_update(QemuClipboardInfo *info) { g_autoptr(QemuClipboardInfo) old = NULL;