[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RFC 2/4] vdagent: refactor vdagent_chr_recv_caps function
From: |
dengpc12 |
Subject: |
[PATCH RFC 2/4] vdagent: refactor vdagent_chr_recv_caps function |
Date: |
Fri, 30 Dec 2022 17:27:56 +0800 |
From: "dengpc12@chinatelecom.cn" <dengpc12@chinatelecom.cn>
Abstract vdagent registry logic into
vdagent_register_to_qemu_clipboard.
Note that trace log of vdagent_recv_caps also be added.
Signed-off-by: dengpc12@chinatelecom.cn <dengpc12@chinatelecom.cn>
Signed-off-by: liuym16@chinatelecom.cn <liuym16@chinatelecom.cn>
---
ui/trace-events | 1 +
ui/vdagent.c | 20 +++++++++++++-------
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/ui/trace-events b/ui/trace-events
index 977577fbba..5e50b60da5 100644
--- a/ui/trace-events
+++ b/ui/trace-events
@@ -143,6 +143,7 @@ vdagent_cb_grab_selection(const char *name) "selection %s"
vdagent_cb_grab_discard(const char *name, int cur, int recv) "selection %s,
cur:%d recv:%d"
vdagent_cb_grab_type(const char *name) "type %s"
vdagent_cb_serial_discard(uint32_t current, uint32_t received) "current=%u,
received=%u"
+vdagent_recv_caps(uint32_t caps) "received caps %u"
# dbus.c
dbus_registered_listener(const char *bus_name) "peer %s"
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 645383b4ec..38061d5b38 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -696,6 +696,16 @@ static void vdagent_chr_open(Chardev *chr,
*be_opened = true;
}
+static void vdagent_register_to_qemu_clipboard(VDAgentChardev *vd)
+{
+ if (have_clipboard(vd) && vd->cbpeer.notifier.notify == NULL) {
+ vd->cbpeer.name = "vdagent";
+ vd->cbpeer.notifier.notify = vdagent_clipboard_notify;
+ vd->cbpeer.request = vdagent_clipboard_request;
+ qemu_clipboard_peer_register(&vd->cbpeer);
+ }
+}
+
static void vdagent_chr_recv_caps(VDAgentChardev *vd, VDAgentMessage *msg)
{
VDAgentAnnounceCapabilities *caps = (void *)msg->data;
@@ -720,14 +730,10 @@ static void vdagent_chr_recv_caps(VDAgentChardev *vd,
VDAgentMessage *msg)
qemu_input_handler_activate(vd->mouse_hs);
}
- memset(vd->last_serial, 0, sizeof(vd->last_serial));
+ trace_vdagent_recv_caps(vd->caps);
- if (have_clipboard(vd) && vd->cbpeer.notifier.notify == NULL) {
- vd->cbpeer.name = "vdagent";
- vd->cbpeer.notifier.notify = vdagent_clipboard_notify;
- vd->cbpeer.request = vdagent_clipboard_request;
- qemu_clipboard_peer_register(&vd->cbpeer);
- }
+ memset(vd->last_serial, 0, sizeof(vd->last_serial));
+ vdagent_register_to_qemu_clipboard(vd);
}
static void vdagent_chr_recv_msg(VDAgentChardev *vd, VDAgentMessage *msg)
--
2.27.0