ui/gtk: retry sending VTE console input
commit7bce330ae4040860ddb5ce66dc7999f16577855c
authorVolker Rümelin <vr_qemu@t-online.de>
Tue, 10 Aug 2021 06:32:57 +0000 (10 08:32 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 10 Aug 2021 08:39:46 +0000 (10 10:39 +0200)
treea9e90d5a3e1bf56e2cacb33eedda66b3c612d8f1
parentbccabb3a5d60182645c7749e89f21a9ff307a9eb
ui/gtk: retry sending VTE console input

Commit 584af1f1d9 ("ui/gtk: add a keyboard fifo to the VTE
consoles") changed the VTE chardev backend code to rely on the
chr_accept_input() callback function. The code expects a
chr_accept_input() call whenever qemu_chr_be_can_write() bytes
were written. It turns out this is wrong. Some chardev
frontends only call this callback after can_write was 0.

Change the code to send data until the keyboard fifo is empty
or qemu_chr_be_can_write() returns 0.

Fixes: 584af1f1d9 ("ui/gtk: add a keyboard fifo to the VTE consoles")
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210810063257.17411-1-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
ui/gtk.c