From fd6ce9975e4cc9c090d07e7a6b0013d02b49ce26 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Tue, 15 May 2012 16:16:25 +0800 Subject: [PATCH] Bug 676077: Fix handling of Keyboard Input on Windows 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 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gdk/gdkkeyuni.c b/gdk/gdkkeyuni.c index 3a7cca15a7..c951ad8d82 100644 --- a/gdk/gdkkeyuni.c +++ b/gdk/gdkkeyuni.c @@ -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 }; /** -- 2.30.2