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); |