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
This commit is contained in:
ftang%netscape.com
2001-05-24 01:07:41 +00:00
parent 911a7b0b3c
commit 74b8f582d0

View File

@@ -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);
}