[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] ui/vdagent: call vdagent_disconnect() when agent connection
From: |
tugy |
Subject: |
[PATCH 1/2] ui/vdagent: call vdagent_disconnect() when agent connection is lost |
Date: |
Thu, 17 Aug 2023 19:23:55 +0800 |
From: Guoyi Tu <tugy@chinatelecom.cn>
when the agent connection is lost, the input handler of the mouse
doesn't deactivate, which results in unresponsive mouse events in
VNC windows.
To fix this issue, call vdagent_disconnect() to reset the state
each time the frontend disconncect
Signed-off-by: Guoyi Tu <tugy@chinatelecom.cn>
Signed-off-by: dengpengcheng <dengpc12@chinatelecom.cn>
---
ui/vdagent.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 8a651492f0..386dc5abe0 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -870,8 +870,11 @@ static void vdagent_disconnect(VDAgentChardev *vd)
static void vdagent_chr_set_fe_open(struct Chardev *chr, int fe_open)
{
+ VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(chr);
+
if (!fe_open) {
trace_vdagent_close();
+ vdagent_disconnect(vd);
/* To reset_serial, we CLOSED our side. Make sure the other end knows
we
* are ready again. */
qemu_chr_be_event(chr, CHR_EVENT_OPENED);
@@ -922,7 +925,6 @@ static void vdagent_chr_fini(Object *obj)
VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(obj);
migrate_del_blocker(vd->migration_blocker);
- vdagent_disconnect(vd);
buffer_free(&vd->outbuf);
error_free(vd->migration_blocker);
}
--
2.27.0