diff options
author | Behnam Esfahbod <behnam@zwnj.org> | 2006-09-20 17:47:28 +0000 |
---|---|---|
committer | Behnam Esfahbod <behnam@src.gnome.org> | 2006-09-20 17:47:28 +0000 |
commit | a0c6753511bb64205c1ccadf5f011b1fca440078 (patch) | |
tree | c91ac2b15e3e185d24314e4dab23ad001aa0cb66 /gdk/x11/gdkkeys-x11.c | |
parent | 00bfb206eecfa3191063ed3bbf99370ce1770d7c (diff) | |
download | gtk+-a0c6753511bb64205c1ccadf5f011b1fca440078.tar.gz |
just check the first shift-level of keyboard layout for RTL and LTR
2006-09-20 Behnam Esfahbod <behnam@zwnj.org>
* gdk/x11/gdkkeys-x11.c:
(get_direction): just check the first shift-level of keyboard
layout for RTL and LTR keysyms() (compliment to #116626)
Diffstat (limited to 'gdk/x11/gdkkeys-x11.c')
-rw-r--r-- | gdk/x11/gdkkeys-x11.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/gdk/x11/gdkkeys-x11.c b/gdk/x11/gdkkeys-x11.c index d45ab1430d..4c749287ca 100644 --- a/gdk/x11/gdkkeys-x11.c +++ b/gdk/x11/gdkkeys-x11.c @@ -561,27 +561,23 @@ get_direction (XkbDescRec *xkb, for (code = xkb->min_key_code; code <= xkb->max_key_code; code++) { - gint width = XkbKeyGroupWidth (xkb, code, group); - gint level; - for (level = 0; level < width; level++) - { - KeySym sym = XkbKeySymEntry (xkb, code, level, group); - PangoDirection dir = pango_unichar_direction (gdk_keyval_to_unicode (sym)); + gint level = 0; + KeySym sym = XkbKeySymEntry (xkb, code, level, group); + PangoDirection dir = pango_unichar_direction (gdk_keyval_to_unicode (sym)); - switch (dir) - { - case PANGO_DIRECTION_RTL: - rtl_minus_ltr++; - break; - case PANGO_DIRECTION_LTR: - rtl_minus_ltr--; - break; - default: - break; - } + switch (dir) + { + case PANGO_DIRECTION_RTL: + rtl_minus_ltr++; + break; + case PANGO_DIRECTION_LTR: + rtl_minus_ltr--; + break; + default: + break; } } - + if (rtl_minus_ltr > 0) return PANGO_DIRECTION_RTL; else |