[webkit-help] EditorClient*::handleKeyboardEvent()

Stephan Assmus superstippi at gmx.de
Wed Feb 3 10:08:08 PST 2010


Hi all,

working on the Haiku port, I tried to figure out why I cannot input text 
into text fields. Finally, I've found out that the important details happen 
in EditorClientHaiku::handleKeyboardEvent(). The method seems to be very 
similar to the EditorClientQt implementation:

void EditorClientHaiku::handleKeyboardEvent(KeyboardEvent* event)
{
    Frame* frame = m_page->focusController()->focusedOrMainFrame();
    if (!frame || !frame->document()->focusedNode())
        return;

    const PlatformKeyboardEvent* kevent = event->keyEvent();
    if (!kevent || kevent->type() == PlatformKeyboardEvent::KeyUp)
        return;

    Node* start = frame->selection()->start().node();
    if (!start)
        return;

    if (start->isContentEditable()) {
        switch (kevent->windowsVirtualKeyCode()) {
[...]

The culprit is that the start node returns 'false' for isContentEditable(). 
If I ignore the result and execute the code as if the condition were true, 
text fields suddenly work just fine. Can anyone give me a clue as to where 
the Haiku port may do something wrong that results into this behavior? The 
previous work on the Haiku port was done by someone else, maybe this even 
used to work at the time the initial port was made.

Best regards,
-Stephan


More information about the webkit-help mailing list