diff -r 79859ed3eea9 -r 919f36ff910f webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp --- 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 #include "WebCursor.h" #include "StaticObjectsContainer.h" #include "Page.h" @@ -36,7 +36,7 @@ #include "WebFrameView.h" #include #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; }