cryptospore / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone
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