mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
ui/gtk: add a keyboard fifo to the VTE consoles
Since commit8eb13bbbac
("ui/gtk: vte: fix sending multiple characeters") it's very easy to lock up QEMU with the GTK ui. If you configure a guest with a serial device and the guest doesn't listen on this device, QEMU will lock up after entering two characters in the serial console. That's because current code uses a busy loop for the chardev write retries and the busy loop doesn't terminate in this case. To fix this problem add a fifo to the VTE consoles and use the chr_accept_input() callback function to write the remaining characters in the queue to the chardev. The fifo has a size of 4096 bytes, so one can copy and paste a fairly large URL or file path. Fixes:8eb13bbbac
("ui/gtk: vte: fix sending multiple characeters") Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Message-Id: <20210725165039.5242-1-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
d4a1210480
commit
584af1f1d9
2 changed files with 37 additions and 9 deletions
|
@ -25,6 +25,9 @@
|
|||
#include "ui/egl-helpers.h"
|
||||
#include "ui/egl-context.h"
|
||||
#endif
|
||||
#ifdef CONFIG_VTE
|
||||
#include "qemu/fifo8.h"
|
||||
#endif
|
||||
|
||||
#define MAX_VCS 10
|
||||
|
||||
|
@ -62,6 +65,7 @@ typedef struct VirtualVteConsole {
|
|||
GtkWidget *scrollbar;
|
||||
GtkWidget *terminal;
|
||||
Chardev *chr;
|
||||
Fifo8 out_fifo;
|
||||
bool echo;
|
||||
} VirtualVteConsole;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue