diff -r 4bd5176e1bc8 -r a1a5d4e727e8 webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp --- a/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Tue May 25 13:52:38 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Wed Jun 09 10:52:50 2010 +0300 @@ -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; }