From 74b8f582d0e0ba279202b616d605f03a5c452f49 Mon Sep 17 00:00:00 2001 From: "ftang%netscape.com" Date: Thu, 24 May 2001 01:07:41 +0000 Subject: [PATCH] fix bug 74088. check in for katakai@japan.sun.com r=ftang/pavlov sr/a=blizzard change the key event init code so we can handle the keysym correctly for non ASCII keys git-svn-id: svn://10.0.0.236/trunk@95848 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/gtk/nsGtkEventHandler.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mozilla/widget/src/gtk/nsGtkEventHandler.cpp b/mozilla/widget/src/gtk/nsGtkEventHandler.cpp index 3ebfa9e4136..aeac3d93f77 100644 --- a/mozilla/widget/src/gtk/nsGtkEventHandler.cpp +++ b/mozilla/widget/src/gtk/nsGtkEventHandler.cpp @@ -680,16 +680,19 @@ gint handle_key_press_event(GtkObject *w, GdkEventKey* event, gpointer p) // character code. Note we have to check for modifier keys, since // gtk returns a character value for them // - if (event->length) { - if (nsGtkIMEHelper::GetSingleton() && (!kevent.keyCode)) { - win->IMECommitEvent(event); - } else { - InitKeyPressEvent(event, win, kevent); - win->OnKey(kevent); + // Call nsConvertCharCodeToUnicode() here to get kevent.charCode + InitKeyPressEvent(event, win, kevent); + + if (event->length) { + if (kevent.charCode || kevent.keyCode) { + // kevent.charCode or kevent.keyCode is valid, just pass to OnKey() + win->OnKey(kevent); + } else if (nsGtkIMEHelper::GetSingleton()) { + // commit request from IME + win->IMECommitEvent(event); } } else { // for Home/End/Up/Down/Left/Right/PageUp/PageDown key - InitKeyPressEvent(event, win, kevent); win->OnKey(kevent); }