[gtk+/gtk-2-24] GDK W32: Special handling for VK_PAUSE



commit 962d3dffc1638e0952144c5236bf61b7eb20072c
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Wed Jul 27 18:05:10 2016 +0000

    GDK W32: Special handling for VK_PAUSE
    
    Similar to VK_DIVIDE, this key can't be mapped to a scancode by
    MapVirtualKeyEx(). Googling suggests that this is a known bug.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=769214

 gdk/win32/gdkkeys-win32.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gdk/win32/gdkkeys-win32.c b/gdk/win32/gdkkeys-win32.c
index b971774..12c6c07 100644
--- a/gdk/win32/gdkkeys-win32.c
+++ b/gdk/win32/gdkkeys-win32.c
@@ -699,8 +699,13 @@ update_keymap (GdkKeymap *gdk_keymap)
           scancode = MapVirtualKeyEx (vk, 0, hkls[group]);
           keygroup = &keymap->keysym_tab[(vk * hkls_len + group) * GDK_WIN32_LEVEL_COUNT];
 
+          /* MapVirtualKeyEx() fails to produce a scancode for VK_DIVIDE and VK_PAUSE.
+           * Ignore that, handle_special() will figure out a Gdk keyval for these
+           * without needing a scancode.
+           */
           if (scancode == 0 &&
-              vk != VK_DIVIDE)
+              vk != VK_DIVIDE &&
+              vk != VK_PAUSE)
             {
               for (level = GDK_WIN32_LEVEL_NONE; level < GDK_WIN32_LEVEL_COUNT; level++)
                 keygroup[level] = GDK_KEY_VoidSymbol;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]