webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp
branchRCL_3
changeset 94 919f36ff910f
parent 93 79859ed3eea9
--- a/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp	Tue Aug 31 16:17:46 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp	Wed Sep 01 12:28:30 2010 +0100
@@ -27,7 +27,7 @@
 #include "HitTestResult.h"
 #include "HTMLNames.h"
 #include "FrameTree.h"
-#include "BrCtlDefs.h"
+#include <brctldefs.h>
 #include "WebCursor.h"
 #include "StaticObjectsContainer.h"
 #include "Page.h"
@@ -36,7 +36,7 @@
 #include "WebFrameView.h"
 #include <wtf/RefPtr.h>
 #include "EventHandler.h"
-#include "WebKitLogger.h"
+#include "webkitlogger.h"
 #include "FocusController.h"
 #include "RenderListBox.h"
 #include "HTMLSelectElement.h"
@@ -70,7 +70,7 @@
 
 void WebTabbedNavigation::initializeForPage()
 {
-    if (!m_initializedForPage) {
+    if (!m_initializedForPage && m_webView->IsVisible()) {
         if (navigate(0, 1)) {
             m_initializedForPage = true;
             m_firstNavigationOnPage = false;
@@ -139,16 +139,20 @@
                 elemVisibleRect.Intersection(m_webView->Rect());
                 if (horizontalDir == -1) {
                     focusPosition.iX = elemVisibleRect.iTl.iX;
+                    focusPosition.iY = elemVisibleRect.iTl.iY;
                 }
                 else if (horizontalDir == 1) {
                     focusPosition.iX = elemVisibleRect.iBr.iX;
+                    focusPosition.iY = elemVisibleRect.iTl.iY;
                 }
                 
                 if (verticalDir == -1) {
                     focusPosition.iY = elemVisibleRect.iTl.iY;
+                    focusPosition.iX = elemVisibleRect.iTl.iX;
                 }
                 else if (verticalDir == 1) {
                     focusPosition.iY = elemVisibleRect.iBr.iY;
+                    focusPosition.iX = elemVisibleRect.iTl.iX;
                 }
                 
                 if ((verticalDir == 0) && (horizontalDir == 0)) {
@@ -429,7 +433,7 @@
     sameAxisDist = horizontalDir * (point.iX - m_focusPosition.iX) + verticalDir * (point.iY - m_focusPosition.iY);
     otherAxisDist = (horizontalDir) ? (point.iY - m_focusPosition.iY) : (point.iX - m_focusPosition.iX) ;
     otherAxisDist = (otherAxisDist < 0 ) ? (otherAxisDist * -1) : otherAxisDist;
-    if (horizontalDir) { // horizontal
+    if (verticalDir) { // vertical 
         if (rect.iBr.iY < m_selectedElementRect.iTl.iY || rect.iTl.iY > m_selectedElementRect.iBr.iY) {
             overlap = 0;
         }
@@ -443,7 +447,7 @@
             }
         }
     }
-    else { // vertical    
+    else { // horizontal   
         if (rect.iBr.iX < m_selectedElementRect.iTl.iX || rect.iTl.iX > m_selectedElementRect.iBr.iX) {
             overlap = 0;
         }