|
|
76daa3 |
From 411289538c4bf8b948152211c7f0f84865084c52 Mon Sep 17 00:00:00 2001
|
|
|
76daa3 |
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
|
|
76daa3 |
Date: Fri, 26 May 2017 07:44:56 +0200
|
|
|
76daa3 |
Subject: [PATCH 01/13] input: don't queue delay if paused
|
|
|
76daa3 |
MIME-Version: 1.0
|
|
|
76daa3 |
Content-Type: text/plain; charset=UTF-8
|
|
|
76daa3 |
Content-Transfer-Encoding: 8bit
|
|
|
76daa3 |
|
|
|
76daa3 |
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
|
76daa3 |
Message-id: <20170526074456.19599-1-marcandre.lureau@redhat.com>
|
|
|
76daa3 |
Patchwork-id: 75419
|
|
|
76daa3 |
O-Subject: [RHV-7.4 qemu-kvm-rhev PATCH] input: don't queue delay if paused
|
|
|
76daa3 |
Bugzilla: 1444326
|
|
|
76daa3 |
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Vlad Yasevich <vyasevic@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
qemu_input_event_send() discards key event when the guest is paused,
|
|
|
76daa3 |
but not the delay.
|
|
|
76daa3 |
|
|
|
76daa3 |
The delay ends up in the input queue, and qemu_input_event_send_key()
|
|
|
76daa3 |
will further fill the queue with upcoming events.
|
|
|
76daa3 |
|
|
|
76daa3 |
VNC uses qemu_input_event_send_key_delay(), not SPICE, which results
|
|
|
76daa3 |
in a different input behaviour on pause: VNC will queue the events
|
|
|
76daa3 |
(except the first that is discarded), SPICE will discard all events.
|
|
|
76daa3 |
|
|
|
76daa3 |
Don't queue delay if paused, and provide same behaviour on SPICE and
|
|
|
76daa3 |
VNC clients on resume (and potentially avoid over-allocating the
|
|
|
76daa3 |
buffer queue)
|
|
|
76daa3 |
|
|
|
76daa3 |
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
|
76daa3 |
Message-id: 20170425130520.31819-1-marcandre.lureau@redhat.com
|
|
|
76daa3 |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
(cherry picked from commit 05c6638b203fd7d8bbfa88ac6e6198e32ed0506f)
|
|
|
76daa3 |
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
---
|
|
|
76daa3 |
ui/input.c | 4 ++++
|
|
|
76daa3 |
1 file changed, 4 insertions(+)
|
|
|
76daa3 |
|
|
|
76daa3 |
diff --git a/ui/input.c b/ui/input.c
|
|
|
76daa3 |
index ed88cda..383158b 100644
|
|
|
76daa3 |
--- a/ui/input.c
|
|
|
76daa3 |
+++ b/ui/input.c
|
|
|
76daa3 |
@@ -405,6 +405,10 @@ void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down)
|
|
|
76daa3 |
|
|
|
76daa3 |
void qemu_input_event_send_key_delay(uint32_t delay_ms)
|
|
|
76daa3 |
{
|
|
|
76daa3 |
+ if (!runstate_is_running() && !runstate_check(RUN_STATE_SUSPENDED)) {
|
|
|
76daa3 |
+ return;
|
|
|
76daa3 |
+ }
|
|
|
76daa3 |
+
|
|
|
76daa3 |
if (!kbd_timer) {
|
|
|
76daa3 |
kbd_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, qemu_input_queue_process,
|
|
|
76daa3 |
&kbd_queue);
|
|
|
76daa3 |
--
|
|
|
76daa3 |
1.8.3.1
|
|
|
76daa3 |
|