diff -r cb62a4f66ebe -r 6297cdf66332 webengine/osswebengine/WebKit/s60/webview/WebView.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Thu Jan 07 13:31:38 2010 +0200 +++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Mon Jan 18 21:20:18 2010 +0200 @@ -1083,6 +1083,7 @@ bool downEventConsumed = false; bool consumed = false; bool tabbedNavigation = (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed); + bool navigationNone = (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone); /* * For each platform keyDown event EventHandler::keEvent() generates * keydown and keypress. @@ -1091,8 +1092,11 @@ * and send it here. */ if (eventcode == EEventKeyDown){ - downEventConsumed = sendKeyEventToEngine(keyevent, EEventKeyDown, frame); + downEventConsumed = sendKeyEventToEngine(keyevent, EEventKeyDown, frame) || + ((m_focusedElementType == TBrCtlDefs::EElementActivatedInputBox && // style of input box + page()->chrome()->client()->elementVisibilityChanged())); } + /* * downEventConsumed will be true if JavaScript consumes key event * If we are not in the widget mode we want to deactivate input box @@ -1104,7 +1108,11 @@ if (!widgetDownEventConsumed && needDeactivateEditable(keyevent, eventcode, frame, downEventConsumed)) { deactivateEditable(); } - + if(!navigationNone) + if(frame->document()->focusedNode() != NULL && IS_DOWN_KEY(keyevent) && frame->document()->focusedNode()->changed()) + { + deactivateEditable(); + } if (tabbedNavigation) { consumed = downEventConsumed || handleTabbedNavigation(m_currentEventKey, m_currentEventCode); } @@ -1376,7 +1384,7 @@ (keyevent.iScanCode == EStdKeyEnter) ) { // pass it to webcore - if (( m_focusedElementType == TBrCtlDefs::EElementInputBox || + if (( m_focusedElementType == TBrCtlDefs::EElementActivatedInputBox || m_focusedElementType == TBrCtlDefs::EElementTextAreaBox) && m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed ) { if (!m_prevEditMode) { @@ -2557,6 +2565,7 @@ #if USE(LOW_BANDWIDTH_DISPLAY) m_page->mainFrame()->loader()->setUseLowBandwidthDisplay(false); #endif + StaticObjectsContainer::instance()->setIconDatabaseEnabled(false); } //Widgets dont need memory cache for dead objects. hence set it to 0