r=ftang/pavlov sr/a=blizzard
change the key event init code so we can handle the keysym correctly for
non ASCII keys
This commit is contained in:
ftang%netscape.com 2001-05-24 01:07:41 +00:00
Родитель 63f4988f88
Коммит b28b515d1d
1 изменённых файлов: 10 добавлений и 7 удалений

Просмотреть файл

@ -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 // character code. Note we have to check for modifier keys, since
// gtk returns a character value for them // 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 } else { // for Home/End/Up/Down/Left/Right/PageUp/PageDown key
InitKeyPressEvent(event, win, kevent);
win->OnKey(kevent); win->OnKey(kevent);
} }