|
|
dfc2f2 |
From 0dbcfacf2a2b2cdd77fc028ab1c6902249de594a Mon Sep 17 00:00:00 2001
|
|
|
dfc2f2 |
From: Christophe Fergeau <cfergeau@redhat.com>
|
|
|
dfc2f2 |
Date: Fri, 7 Feb 2014 14:36:21 +0100
|
|
|
dfc2f2 |
Subject: [PATCH] Don't attempt to send 0 scancode when releasing keys
|
|
|
dfc2f2 |
|
|
|
dfc2f2 |
When releasing all keys, we send a key release for scancode in the
|
|
|
dfc2f2 |
key_state array, including the very first element with scancode 0.
|
|
|
dfc2f2 |
send_key() complain when the scancode is 0, so make sure we don't call it
|
|
|
dfc2f2 |
for this first element.
|
|
|
dfc2f2 |
|
|
|
dfc2f2 |
This fixes a
|
|
|
dfc2f2 |
(remote-viewer:25548): GSpice-CRITICAL **: send_key: assertion 'scancode != 0' failed
|
|
|
dfc2f2 |
warning when starting remote-viewer windowed, and then switching to another
|
|
|
dfc2f2 |
desktop client-side using ctrl+alt+arrow.
|
|
|
dfc2f2 |
|
|
|
dfc2f2 |
Related: rhbz#1097338
|
|
|
dfc2f2 |
|
|
|
dfc2f2 |
(cherry picked from commit d28d6e11d20a562a93f23edf1e2a41019ecf6be0)
|
|
|
dfc2f2 |
---
|
|
|
dfc2f2 |
gtk/spice-widget.c | 5 ++++-
|
|
|
dfc2f2 |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
dfc2f2 |
|
|
|
dfc2f2 |
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
|
|
|
dfc2f2 |
index afb6b48..233f36c 100644
|
|
|
dfc2f2 |
--- a/gtk/spice-widget.c
|
|
|
dfc2f2 |
+++ b/gtk/spice-widget.c
|
|
|
dfc2f2 |
@@ -1255,7 +1255,10 @@ static void release_keys(SpiceDisplay *display)
|
|
|
dfc2f2 |
continue;
|
|
|
dfc2f2 |
}
|
|
|
dfc2f2 |
for (b = 0; b < 32; b++) {
|
|
|
dfc2f2 |
- send_key(display, i * 32 + b, SEND_KEY_RELEASE, FALSE);
|
|
|
dfc2f2 |
+ unsigned int scancode = i * 32 + b;
|
|
|
dfc2f2 |
+ if (scancode != 0) {
|
|
|
dfc2f2 |
+ send_key(display, scancode, SEND_KEY_RELEASE, FALSE);
|
|
|
dfc2f2 |
+ }
|
|
|
dfc2f2 |
}
|
|
|
dfc2f2 |
}
|
|
|
dfc2f2 |
}
|