diff options
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/win32/gdkglobals-win32.c | 2 | ||||
-rw-r--r-- | gdk/win32/gdkkeys-win32.c | 15 | ||||
-rw-r--r-- | gdk/win32/gdkmain-win32.c | 4 |
3 files changed, 14 insertions, 7 deletions
diff --git a/gdk/win32/gdkglobals-win32.c b/gdk/win32/gdkglobals-win32.c index 3215877286..831c05acc6 100644 --- a/gdk/win32/gdkglobals-win32.c +++ b/gdk/win32/gdkglobals-win32.c @@ -64,5 +64,5 @@ GdkAtom _wm_transient_for; DWORD _windows_version; -gint _gdk_input_ignore_wintab = FALSE; +gint _gdk_input_ignore_wintab = TRUE; gint _gdk_max_colors = 0; diff --git a/gdk/win32/gdkkeys-win32.c b/gdk/win32/gdkkeys-win32.c index 1756ef256f..9473a36acc 100644 --- a/gdk/win32/gdkkeys-win32.c +++ b/gdk/win32/gdkkeys-win32.c @@ -667,17 +667,20 @@ gdk_keymap_translate_keyboard_state (GdkKeymap *keymap, if (group < 0 || group >= 2) return FALSE; - if ((state & GDK_SHIFT_MASK) && (state & GDK_LOCK_MASK)) - shift_level = 0; /* shift disables caps lock */ + update_keymap (); + + keyvals = keysym_tab + hardware_keycode*4; + + if ((state & GDK_SHIFT_MASK) && + (state & GDK_LOCK_MASK) && + keyvals[group*2 + 1] == gdk_keyval_to_upper (keyvals[group*2 + 0])) + /* Shift disables caps lock */ + shift_level = 0; else if (state & GDK_SHIFT_MASK) shift_level = 1; else shift_level = 0; - update_keymap (); - - keyvals = keysym_tab + hardware_keycode*4; - /* Drop group and shift if there are no keysymbols on * the key for those. */ diff --git a/gdk/win32/gdkmain-win32.c b/gdk/win32/gdkmain-win32.c index a8aa92ce6f..df42789e23 100644 --- a/gdk/win32/gdkmain-win32.c +++ b/gdk/win32/gdkmain-win32.c @@ -58,6 +58,8 @@ GdkArgDesc _gdk_windowing_args[] = { (GdkArgFunc) NULL}, { "ignore-wintab", GDK_ARG_BOOL, &_gdk_input_ignore_wintab, (GdkArgFunc) NULL}, + { "use-wintab", GDK_ARG_NOBOOL, &_gdk_input_ignore_wintab, + (GdkArgFunc) NULL}, { "max-colors", GDK_ARG_INT, &_gdk_max_colors, (GdkArgFunc) NULL}, { NULL } }; @@ -81,6 +83,8 @@ _gdk_windowing_init (gint *argc, #ifdef HAVE_WINTAB if (getenv ("GDK_IGNORE_WINTAB") != NULL) _gdk_input_ignore_wintab = TRUE; + else if (getenv ("GDK_USE_WINTAB") != NULL) + _gdk_input_ignore_wintab = FALSE; #endif if (gdk_synchronize) |