[Spice-commits] 4 commits - gtk/keymaps.csv gtk/spice-widget.c gtk/vncdisplaykeymap.c
Marc-André Lureau
elmarco at kemper.freedesktop.org
Mon Oct 15 11:13:15 PDT 2012
gtk/keymaps.csv | 2 +-
gtk/spice-widget.c | 11 ++++++++++-
gtk/vncdisplaykeymap.c | 4 ++--
3 files changed, 13 insertions(+), 4 deletions(-)
New commits:
commit eb0d7e4d4fc588e523c8fd6d87f7c15ca16dda89
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date: Mon Oct 15 19:04:06 2012 +0200
win32: ignore hardware keycode 255
It's a reserved value, and it doesn't have a valid scancode
translation. Currently, We hit a warning in the delayed key handling
later.
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index 391cd39..13d7111 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -1037,6 +1037,8 @@ static void send_key(SpiceDisplay *display, int scancode, SendKeyType type, gboo
SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
uint32_t i, b, m;
+ g_return_if_fail(scancode != 0);
+
if (!d->inputs)
return;
@@ -1139,7 +1141,11 @@ static gboolean key_event(GtkWidget *widget, GdkEventKey *key)
SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
int scancode;
-
+#ifdef WIN32
+ /* on windows, we ought to ignore the reserved key event? */
+ if (key->hardware_keycode == 0xff)
+ return false;
+#endif
SPICE_DEBUG("%s %s: keycode: %d state: %d group %d modifier %d",
__FUNCTION__, key->type == GDK_KEY_PRESS ? "press" : "release",
key->hardware_keycode, key->state, key->group, key->is_modifier);
commit 57449951f890121ee3fa6984040711c28b09f935
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date: Mon Oct 15 18:42:16 2012 +0200
vnc keymap: fix incorrect table size
This lead to out of bound array access
diff --git a/gtk/vncdisplaykeymap.c b/gtk/vncdisplaykeymap.c
index a6ef38c..bf79f9b 100644
--- a/gtk/vncdisplaykeymap.c
+++ b/gtk/vncdisplaykeymap.c
@@ -197,7 +197,7 @@ const guint16 const *vnc_display_keymap_gdk2xtkbd_table(size_t *maplen)
#ifdef GDK_WINDOWING_WIN32
if (GDK_IS_WIN32_DISPLAY(dpy)) {
VNC_DEBUG("Using Win32 virtual keycode mapping");
- *maplen = sizeof(keymap_win322xtkbd);
+ *maplen = G_N_ELEMENTS(keymap_win322xtkbd);
return keymap_win322xtkbd;
}
#endif
@@ -205,7 +205,7 @@ const guint16 const *vnc_display_keymap_gdk2xtkbd_table(size_t *maplen)
#ifdef GDK_WINDOWING_QUARTZ
if (GDK_IS_QUARTZ_DISPLAY(dpy)) {
VNC_DEBUG("Using OS-X virtual keycode mapping");
- *maplen = sizeof(keymap_osx2xtkbd);
+ *maplen = G_N_ELEMENTS(keymap_osx2xtkbd);
return keymap_osx2xtkbd;
}
#endif
commit 27338e6727fb641e884b26563f5fa47176635ee6
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date: Mon Oct 15 18:12:27 2012 +0200
Add a warning if scancode lookup failed
This helps tracking some send_keys() issues, such as
https://bugzilla.gnome.org/show_bug.cgi?id=686170
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index 47afa40..391cd39 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -1192,6 +1192,9 @@ static guint get_scancode_from_keyval(SpiceDisplay *display, guint keyval)
/* FIXME what about levels? */
keycode = keys[0].keycode;
g_free(keys);
+ } else {
+ g_warning("could not lookup keyval %u, please report a bug", keyval);
+ return 0;
}
return vnc_display_keymap_gdk2xtkbd(d->keycode_map, d->keycode_maplen, keycode);
commit a4b86f3eddba9859bf53c00b129708fc3d6870a7
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date: Mon Oct 15 18:11:19 2012 +0200
win32: fix quote key handling
Fix keymaps to correctly handle the quote key.
https://bugzilla.redhat.com/show_bug.cgi?id=856317
diff --git a/gtk/keymaps.csv b/gtk/keymaps.csv
index 98c723b..ab29e4a 100644
--- a/gtk/keymaps.csv
+++ b/gtk/keymaps.csv
@@ -40,7 +40,7 @@ KEY_J,36,ANSI_J,0x26,36,59,59,36,36,13,VK_J,0x4a,36,36
KEY_K,37,ANSI_K,0x28,37,66,66,37,37,14,VK_K,0x4b,37,37
KEY_L,38,ANSI_L,0x25,38,75,75,38,38,15,VK_L,0x4c,38,38
KEY_SEMICOLON,39,ANSI_Semicolon,0x29,39,76,76,39,39,51,VK_OEM_1,0xba,39,39
-KEY_APOSTROPHE,40,ANSI_Quote,0x27,40,82,82,40,40,52,VK_OEM_2,0xbf,40,40
+KEY_APOSTROPHE,40,ANSI_Quote,0x27,40,82,82,40,40,52,VK_OEM_7,0xde,40,40
KEY_GRAVE,41,ANSI_Grave,0x32,41,14,14,41,41,53,VK_OEM_3,0xc0,41,41
KEY_SHIFT,42,Shift,0x38,42,18,18,42,42,225,VK_SHIFT,0x10,42,42
KEY_LEFTSHIFT,42,Shift,0x38,42,18,18,42,42,225,VK_LSHIFT,0xa0,42,42
More information about the Spice-commits
mailing list