diff options
author | Tor Lillqvist <tml@iki.fi> | 2004-04-10 08:43:36 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2004-04-10 08:43:36 +0000 |
commit | 47b6f521d22f8d16ad26f491083a2449943efe79 (patch) | |
tree | c995b393c7d90eff1dc2ee279236af96b944ba81 /gdk | |
parent | 2caade2a7f96a8b3c46e5a6545a1c4296c921a90 (diff) | |
download | gtk+-47b6f521d22f8d16ad26f491083a2449943efe79.tar.gz |
If both Shift and CapsLock pressed, ignore the shift only for letters
2004-04-10 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkkeys-win32.c (gdk_keymap_translate_keyboard_state):
If both Shift and CapsLock pressed, ignore the shift only for
letters (that would have been affected by the CapsLock). (#139095)
* gdk/win32/gdkglobals-win32.c: Disable tablet support by default,
seems to be even buggier now than it used to be. (#138341)
Initialize _gdk_input_ignore_wintab to TRUE.
* gdk/win32/gdkmain-win32.c: Add --use-wintab switch and
GDK_USE_WINTAB environment variable to turn on tablet support.
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) |