--- 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