console: ignore ui_info updates which don't actually update something

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1464597673-26464-1-git-send-email-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2016-05-30 10:41:13 +02:00
parent 2c2311c545
commit 1185fde40c
1 changed files with 6 additions and 1 deletions

View File

@ -1453,16 +1453,21 @@ bool dpy_ui_info_supported(QemuConsole *con)
int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info)
{
assert(con != NULL);
con->ui_info = *info;
if (!dpy_ui_info_supported(con)) {
return -1;
}
if (memcmp(&con->ui_info, info, sizeof(con->ui_info)) == 0) {
/* nothing changed -- ignore */
return 0;
}
/*
* Typically we get a flood of these as the user resizes the window.
* Wait until the dust has settled (one second without updates), then
* go notify the guest.
*/
con->ui_info = *info;
timer_mod(con->ui_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 1000);
return 0;
}