summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkkeys-win32.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2005-05-22 21:23:45 +0000
committerTor Lillqvist <tml@src.gnome.org>2005-05-22 21:23:45 +0000
commit1abd7f7999aa402ad3c495f6205c1742dd152bb6 (patch)
tree3f1c52f14ed1fa1b9a08f401d6acad5607a4abff /gdk/win32/gdkkeys-win32.c
parent69d6039b7fd3ede0aeb3124188b1a513733d29f1 (diff)
downloadgtk+-1abd7f7999aa402ad3c495f6205c1742dd152bb6.tar.gz
If the keysym isn't one of the special cases this function takes care of,
2005-05-23 Tor Lillqvist <tml@novell.com> * gdk/win32/gdkkeys-win32.c (handle_dead): If the keysym isn't one of the special cases this function takes care of, us it as such. This takes care of for instance the Bengali Virama, see bug #165723.
Diffstat (limited to 'gdk/win32/gdkkeys-win32.c')
-rw-r--r--gdk/win32/gdkkeys-win32.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/gdk/win32/gdkkeys-win32.c b/gdk/win32/gdkkeys-win32.c
index 60089eb49d..1c91fe75c3 100644
--- a/gdk/win32/gdkkeys-win32.c
+++ b/gdk/win32/gdkkeys-win32.c
@@ -267,7 +267,7 @@ reset_after_dead (guchar key_state[256])
}
}
-static gboolean
+static void
handle_dead (guint keysym,
guint *ksymp)
{
@@ -308,9 +308,12 @@ handle_dead (guint keysym,
case GDK_Greek_accentdieresis: /* 0x7ae */
*ksymp = GDK_Greek_accentdieresis; break;
default:
- return FALSE;
+ /* By default use the keysym as such. This takes care of for
+ * instance the dead U+09CD (BENGALI VIRAMA) on the ekushey
+ * Bengali layout.
+ */
+ *ksymp = keysym; break;
}
- return TRUE;
}
static void
@@ -451,14 +454,7 @@ update_keymap (void)
reset_after_dead (key_state);
/* Use dead keysyms instead of "undead" ones */
- if (!handle_dead (keysym, ksymp))
- GDK_NOTE (EVENTS,
- g_print ("Unhandled dead key cp:%d vk:%02x sc:%x ch:%02x wc:%04x keysym:%04x%s%s\n",
- _gdk_input_codepage, vk,
- scancode, chars[0],
- wcs[0], keysym,
- (shift&0x1 ? " shift" : ""),
- (shift&0x2 ? " altgr" : "")));
+ handle_dead (keysym, ksymp);
}
else if (k == 0)
{