Hi On Thu, Aug 17, 2023 at 3:32 PM <t...@chinatelecom.cn> wrote: > > From: Guoyi Tu <t...@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 <t...@chinatelecom.cn> > Signed-off-by: dengpengcheng <dengp...@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);
why remove this cleanup ? (the function seems safe to call multiple times, if it is the case during finalize) > buffer_free(&vd->outbuf); > error_free(vd->migration_blocker); > } > -- > 2.27.0 > > -- Marc-André Lureau