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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user