webengine/osswebengine/WebKit/s60/webview/WebView.cpp
changeset 38 6297cdf66332
parent 37 cb62a4f66ebe
child 42 d39add9822e2
--- 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