I'm trying to understand the keyboard handling, and I spotted
something puzzling.  In EventHandler::keyEvent(const
PlatformKeyboardEvent&), I see:

    m_frame->editor()->handleInputMethodKeydown(keydown.get());

    bool handledByInputMethod = keydown->defaultHandled();

    if (handledByInputMethod) {
        keyDownEvent.setWindowsVirtualKeyCode(CompositionEventKeyCode);
        keydown = KeyboardEvent::create(keyDownEvent, 
m_frame->document()->defaultView());
        keydown->setTarget(node);
        keydown->setDefaultHandled();
    }

I presume that the intent is that in some cases,
EditorClient::handleInputMethodKeydown() will eventually call
keydown->setDefaultHandled()?

However, all platforms, except gtk, have an empty
handleInputMethodKeydown(), and for Gtk, the method never calls
->setDefaultHandled().  In other words, it seems like
handledByInputMethod is always false?!  ... unless I'm missing something.

Another thing related to Gtk:  In EditorClient::handleInputMethodKeydown(), 
towards the end, we see:

    clearPendingComposition();
    if ((gtk_im_context_filter_keypress(priv->imContext.get(), 
event->keyEvent()->gdkEventKey()) && !m_pendingComposition)

So, why even have !m_pendingComposition in the if case given the
clearPendingComposition()?        
_______________________________________________
webkit-help mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-help

Reply via email to