summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hult <richard@imendio.com>2006-09-06 17:29:28 +0000
committerRichard Hult <rhult@src.gnome.org>2006-09-06 17:29:28 +0000
commit7724832996d33324a7d235f7ec6d59d1227e2ddf (patch)
tree3decc240442a3c31c1bd92579f410acb338938c5
parent0f830ba9d932c5ab123beb27baa6cd72889f6454 (diff)
downloadgtk+-7724832996d33324a7d235f7ec6d59d1227e2ddf.tar.gz
Special-case shift-tab and map it to GDK_ISO_Left_Tab, fixes bug #350806.
2006-09-06 Richard Hult <richard@imendio.com> * gdk/quartz/gdkkeys-quartz.c: (maybe_update_keymap): Special-case shift-tab and map it to GDK_ISO_Left_Tab, fixes bug #350806.
-rw-r--r--ChangeLog5
-rw-r--r--gdk/quartz/gdkkeys-quartz.c14
2 files changed, 15 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a4ecd66b59..f05d7583f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-06 Richard Hult <richard@imendio.com>
+
+ * gdk/quartz/gdkkeys-quartz.c: (maybe_update_keymap): Special-case
+ shift-tab and map it to GDK_ISO_Left_Tab, fixes bug #350806.
+
2006-09-04 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb):
diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index c148c6d861..9d62b43508 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -206,7 +206,7 @@ maybe_update_keymap (void)
for (i = 0; i < NUM_KEYCODES; i++)
{
int j;
- UInt32 modifiers[] = {0, shiftKey, optionKey, shiftKey|optionKey};
+ UInt32 modifiers[] = {0, shiftKey, optionKey, shiftKey | optionKey};
p = keyval_array + i * KEYVALS_PER_KEYCODE;
@@ -216,7 +216,7 @@ maybe_update_keymap (void)
UInt16 key_code;
UniChar uc;
- key_code = modifiers[j]|i;
+ key_code = modifiers[j] | i;
c = KeyTranslate (chr_data, key_code, &state);
if (state != 0)
@@ -248,6 +248,12 @@ maybe_update_keymap (void)
}
}
+ /* Special-case shift-tab since GTK+ expects
+ * GDK_ISO_Left_Tab for that.
+ */
+ if (found && p[j] == GDK_Tab && modifiers[j] == shiftKey)
+ p[j] = GDK_ISO_Left_Tab;
+
if (!found)
p[j] = gdk_unicode_to_keyval (uc);
}
@@ -275,7 +281,7 @@ maybe_update_keymap (void)
for (i = 0; i < NUM_KEYCODES; i++)
{
int j;
- UInt32 modifiers[] = {0, shiftKey, optionKey, shiftKey|optionKey};
+ UInt32 modifiers[] = {0, shiftKey, optionKey, shiftKey | optionKey};
UniChar chars[4];
UniCharCount nChars;
@@ -288,7 +294,7 @@ maybe_update_keymap (void)
UInt16 key_code;
UniChar uc;
- key_code = modifiers[j]|i;
+ key_code = modifiers[j] | i;
err = UCKeyTranslate (chr_data, i, kUCKeyActionDown,
(modifiers[j] >> 8) & 0xFF,
LMGetKbdType(),