summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2004-04-10 08:43:36 +0000
committerTor Lillqvist <tml@src.gnome.org>2004-04-10 08:43:36 +0000
commit47b6f521d22f8d16ad26f491083a2449943efe79 (patch)
treec995b393c7d90eff1dc2ee279236af96b944ba81 /gdk
parent2caade2a7f96a8b3c46e5a6545a1c4296c921a90 (diff)
downloadgtk+-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.c2
-rw-r--r--gdk/win32/gdkkeys-win32.c15
-rw-r--r--gdk/win32/gdkmain-win32.c4
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)