webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp
branchRCL_3
changeset 42 a1a5d4e727e8
parent 40 8bfb9186a8b8
child 48 79859ed3eea9
equal deleted inserted replaced
41:4bd5176e1bc8 42:a1a5d4e727e8
   137             if (elemVisibleRect.Intersects(m_webView->Rect())) {
   137             if (elemVisibleRect.Intersects(m_webView->Rect())) {
   138                  
   138                  
   139                 elemVisibleRect.Intersection(m_webView->Rect());
   139                 elemVisibleRect.Intersection(m_webView->Rect());
   140                 if (horizontalDir == -1) {
   140                 if (horizontalDir == -1) {
   141                     focusPosition.iX = elemVisibleRect.iTl.iX;
   141                     focusPosition.iX = elemVisibleRect.iTl.iX;
       
   142                     focusPosition.iY = elemVisibleRect.iTl.iY;
   142                 }
   143                 }
   143                 else if (horizontalDir == 1) {
   144                 else if (horizontalDir == 1) {
   144                     focusPosition.iX = elemVisibleRect.iBr.iX;
   145                     focusPosition.iX = elemVisibleRect.iBr.iX;
       
   146                     focusPosition.iY = elemVisibleRect.iTl.iY;
   145                 }
   147                 }
   146                 
   148                 
   147                 if (verticalDir == -1) {
   149                 if (verticalDir == -1) {
   148                     focusPosition.iY = elemVisibleRect.iTl.iY;
   150                     focusPosition.iY = elemVisibleRect.iTl.iY;
       
   151                     focusPosition.iX = elemVisibleRect.iTl.iX;
   149                 }
   152                 }
   150                 else if (verticalDir == 1) {
   153                 else if (verticalDir == 1) {
   151                     focusPosition.iY = elemVisibleRect.iBr.iY;
   154                     focusPosition.iY = elemVisibleRect.iBr.iY;
       
   155                     focusPosition.iX = elemVisibleRect.iTl.iX;
   152                 }
   156                 }
   153                 
   157                 
   154                 if ((verticalDir == 0) && (horizontalDir == 0)) {
   158                 if ((verticalDir == 0) && (horizontalDir == 0)) {
   155                     focusPosition = elemVisibleRect.Center();
   159                     focusPosition = elemVisibleRect.Center();
   156                 }
   160                 }
   427     Math::Pow(y, (m_focusPosition.iY - point.iY), 2.0);
   431     Math::Pow(y, (m_focusPosition.iY - point.iY), 2.0);
   428     Math::Sqrt(euclidianDistance, x + y);
   432     Math::Sqrt(euclidianDistance, x + y);
   429     sameAxisDist = horizontalDir * (point.iX - m_focusPosition.iX) + verticalDir * (point.iY - m_focusPosition.iY);
   433     sameAxisDist = horizontalDir * (point.iX - m_focusPosition.iX) + verticalDir * (point.iY - m_focusPosition.iY);
   430     otherAxisDist = (horizontalDir) ? (point.iY - m_focusPosition.iY) : (point.iX - m_focusPosition.iX) ;
   434     otherAxisDist = (horizontalDir) ? (point.iY - m_focusPosition.iY) : (point.iX - m_focusPosition.iX) ;
   431     otherAxisDist = (otherAxisDist < 0 ) ? (otherAxisDist * -1) : otherAxisDist;
   435     otherAxisDist = (otherAxisDist < 0 ) ? (otherAxisDist * -1) : otherAxisDist;
   432     if (horizontalDir) { // horizontal
   436     if (verticalDir) { // vertical 
   433         if (rect.iBr.iY < m_selectedElementRect.iTl.iY || rect.iTl.iY > m_selectedElementRect.iBr.iY) {
   437         if (rect.iBr.iY < m_selectedElementRect.iTl.iY || rect.iTl.iY > m_selectedElementRect.iBr.iY) {
   434             overlap = 0;
   438             overlap = 0;
   435         }
   439         }
   436         else {
   440         else {
   437             int top = max(m_selectedElementRect.iTl.iY, rect.iTl.iY);
   441             int top = max(m_selectedElementRect.iTl.iY, rect.iTl.iY);
   441                 euclidianDistance = (euclidianDistance * rect.Height()) / m_selectedElementRect.Height();
   445                 euclidianDistance = (euclidianDistance * rect.Height()) / m_selectedElementRect.Height();
   442                 otherAxisDist = 0;
   446                 otherAxisDist = 0;
   443             }
   447             }
   444         }
   448         }
   445     }
   449     }
   446     else { // vertical    
   450     else { // horizontal   
   447         if (rect.iBr.iX < m_selectedElementRect.iTl.iX || rect.iTl.iX > m_selectedElementRect.iBr.iX) {
   451         if (rect.iBr.iX < m_selectedElementRect.iTl.iX || rect.iTl.iX > m_selectedElementRect.iBr.iX) {
   448             overlap = 0;
   452             overlap = 0;
   449         }
   453         }
   450         else {
   454         else {
   451             int top = max(m_selectedElementRect.iTl.iX, rect.iTl.iX);
   455             int top = max(m_selectedElementRect.iTl.iX, rect.iTl.iX);