From: Marc-André Lureau Date: Wed, 21 Jul 2021 11:19:13 +0000 (+0400) Subject: ui/clipboard: add qemu_clipboard_check_serial() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=349504e5a1533c795cd5f72e629766b996982050;p=qemu.git ui/clipboard: add qemu_clipboard_check_serial() Signed-off-by: Marc-André Lureau Acked-by: Gerd Hoffmann --- diff --git a/include/ui/clipboard.h b/include/ui/clipboard.h index e590b453c8..2c6488c1ee 100644 --- a/include/ui/clipboard.h +++ b/include/ui/clipboard.h @@ -172,6 +172,16 @@ void qemu_clipboard_peer_release(QemuClipboardPeer *peer, */ QemuClipboardInfo *qemu_clipboard_info(QemuClipboardSelection selection); +/** + * qemu_clipboard_check_serial + * + * @info: clipboard info. + * @client: whether to check from the client context and priority. + * + * Return TRUE if the @info has a higher serial than the current clipboard. + */ +bool qemu_clipboard_check_serial(QemuClipboardInfo *info, bool client); + /** * qemu_clipboard_info_new * diff --git a/ui/clipboard.c b/ui/clipboard.c index 743b39edf4..ffbd80e5c6 100644 --- a/ui/clipboard.c +++ b/ui/clipboard.c @@ -41,6 +41,21 @@ void qemu_clipboard_peer_release(QemuClipboardPeer *peer, } } +bool qemu_clipboard_check_serial(QemuClipboardInfo *info, bool client) +{ + if (!info->has_serial || + !cbinfo[info->selection] || + !cbinfo[info->selection]->has_serial) { + return true; + } + + if (client) { + return cbinfo[info->selection]->serial >= info->serial; + } else { + return cbinfo[info->selection]->serial > info->serial; + } +} + void qemu_clipboard_update(QemuClipboardInfo *info) { QemuClipboardNotify notify = {