Bug 676077: Fix handling of Keyboard Input on Windows
authorChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 15 May 2012 08:16:25 +0000 (16:16 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 25 Jun 2012 15:23:01 +0000 (23:23 +0800)
Don't use ASCII control characters to denote the input of Esc, Tab,
Return/Enter, Backspace and Delete, as it seems that it is not how
Windows handle them, and they cause weird characters to appear in the
input field on GTK+3 programs in non-English Windows.  Instead, let
these keys be handled as-is on Windows, like what is done in GTK+-2.x.

Checked with mclasen on IRC, and thanks to the people who verified the
patch to not break anything on English Windows.

gdk/gdkkeyuni.c

index 3a7cca15a72b3c90ef0892b6f1b78b0b52595c77..c951ad8d8285986cabd558c576b1743282cac195 100644 (file)
@@ -830,13 +830,18 @@ static const struct {
   /* Following items added to GTK, not in the xterm table */
 
   /* A few ASCII control characters */
-
+#ifndef GDK_WINDOWING_WIN32
   { 0xFF08 /* Backspace */, '\b' },
   { 0xFF09 /* Tab       */, '\t'  },
+#endif
+
   { 0xFF0A /* Linefeed  */, '\n' },
   { 0xFF0B /* Vert. Tab */, '\v' },
+
+#ifndef GDK_WINDOWING_WIN32
   { 0xFF0D /* Return    */, '\r' },
   { 0xFF1B /* Escape    */, '\033' },
+#endif
 
   /* Numeric keypad */
 
@@ -861,7 +866,9 @@ static const struct {
 
   /* End numeric keypad */
 
+#ifndef GDK_WINDOWING_WIN32
   { 0xFFFF /* Delete */, '\177' }
+#endif
 };
 
 /**