From: Guoyi Tu Date: Thu, 17 Aug 2023 14:12:52 +0000 (+0800) Subject: ui/vdagent: call vdagent_disconnect() when agent connection is lost X-Git-Tag: qemu-xen-4.20.0~559^2~2 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1b4fd51656556646b1a0842e596cb606d73e26cf;p=qemu-xen.git ui/vdagent: call vdagent_disconnect() when agent connection is lost 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 Signed-off-by: dengpengcheng Reviewed-by: Marc-André Lureau Message-Id: <71fd5a58fd09f10cdb35f167b2edb5669300116e.1692281173.git.tugy@chinatelecom.cn> --- diff --git a/ui/vdagent.c b/ui/vdagent.c index 8a651492f0..4b9a1fb7c5 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);