diff --git a/ui/vnc.c b/ui/vnc.c index d65153a500..ea1579135b 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3457,8 +3457,6 @@ VncDisplay *vnc_display_new(const char *id, Error **errp) vnc_start_worker_thread(vd); - register_displaychangelistener(&vd->dcl); - vd->kbd = qkbd_state_init(vd->dcl.con); vd->vmstate_handler_entry = qemu_add_vm_change_state_handler( &vmstate_change_handler, vd); @@ -4269,13 +4267,9 @@ static bool vnc_display_open(VncDisplay *vd, Error **errp) con = qemu_console_lookup_default(); } - if (con != vd->dcl.con) { - qkbd_state_free(vd->kbd); - unregister_displaychangelistener(&vd->dcl); - vd->dcl.con = con; - register_displaychangelistener(&vd->dcl); - vd->kbd = qkbd_state_init(vd->dcl.con); - } + vd->dcl.con = con; + register_displaychangelistener(&vd->dcl); + vd->kbd = qkbd_state_init(vd->dcl.con); qkbd_state_set_delay(vd->kbd, key_delay_ms); if (saddr_list == NULL) {