OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) |
3 * Copyright (C) 2009 Antonio Gomes <tonikitoo@webkit.org> | 3 * Copyright (C) 2009 Antonio Gomes <tonikitoo@webkit.org> |
4 * | 4 * |
5 * All rights reserved. | 5 * All rights reserved. |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 return false; | 498 return false; |
499 | 499 |
500 if (firstCandidate.visibleNode->layoutObject()->containingBlock() != secondC
andidate.visibleNode->layoutObject()->containingBlock()) | 500 if (firstCandidate.visibleNode->layoutObject()->containingBlock() != secondC
andidate.visibleNode->layoutObject()->containingBlock()) |
501 return false; | 501 return false; |
502 | 502 |
503 return true; | 503 return true; |
504 } | 504 } |
505 | 505 |
506 void distanceDataForNode(WebFocusType type, const FocusCandidate& current, Focus
Candidate& candidate) | 506 void distanceDataForNode(WebFocusType type, const FocusCandidate& current, Focus
Candidate& candidate) |
507 { | 507 { |
| 508 if (!isRectInDirection(type, current.rect, candidate.rect)) |
| 509 return; |
| 510 |
508 if (areElementsOnSameLine(current, candidate)) { | 511 if (areElementsOnSameLine(current, candidate)) { |
509 if ((type == WebFocusTypeUp && current.rect.y() > candidate.rect.y()) ||
(type == WebFocusTypeDown && candidate.rect.y() > current.rect.y())) { | 512 if ((type == WebFocusTypeUp && current.rect.y() > candidate.rect.y()) ||
(type == WebFocusTypeDown && candidate.rect.y() > current.rect.y())) { |
510 candidate.distance = 0; | 513 candidate.distance = 0; |
511 return; | 514 return; |
512 } | 515 } |
513 } | 516 } |
514 | 517 |
515 LayoutRect nodeRect = candidate.rect; | 518 LayoutRect nodeRect = candidate.rect; |
516 LayoutRect currentRect = current.rect; | 519 LayoutRect currentRect = current.rect; |
517 deflateIfOverlapped(currentRect, nodeRect); | 520 deflateIfOverlapped(currentRect, nodeRect); |
518 | 521 |
519 if (!isRectInDirection(type, currentRect, nodeRect)) | |
520 return; | |
521 | |
522 LayoutPoint exitPoint; | 522 LayoutPoint exitPoint; |
523 LayoutPoint entryPoint; | 523 LayoutPoint entryPoint; |
524 entryAndExitPointsForDirection(type, currentRect, nodeRect, exitPoint, entry
Point); | 524 entryAndExitPointsForDirection(type, currentRect, nodeRect, exitPoint, entry
Point); |
525 | 525 |
526 LayoutUnit xAxis = (exitPoint.x() - entryPoint.x()).abs(); | 526 LayoutUnit xAxis = (exitPoint.x() - entryPoint.x()).abs(); |
527 LayoutUnit yAxis = (exitPoint.y() - entryPoint.y()).abs(); | 527 LayoutUnit yAxis = (exitPoint.y() - entryPoint.y()).abs(); |
528 | 528 |
529 LayoutUnit navigationAxisDistance; | 529 LayoutUnit navigationAxisDistance; |
530 LayoutUnit weightedOrthogonalAxisDistance; | 530 LayoutUnit weightedOrthogonalAxisDistance; |
531 | 531 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 LayoutRect rect = virtualRectForDirection(type, rectToAbsoluteCoordinates(ar
ea.document().frame(), area.computeRect(area.imageElement()->layoutObject())), 1
); | 622 LayoutRect rect = virtualRectForDirection(type, rectToAbsoluteCoordinates(ar
ea.document().frame(), area.computeRect(area.imageElement()->layoutObject())), 1
); |
623 return rect; | 623 return rect; |
624 } | 624 } |
625 | 625 |
626 HTMLFrameOwnerElement* frameOwnerElement(FocusCandidate& candidate) | 626 HTMLFrameOwnerElement* frameOwnerElement(FocusCandidate& candidate) |
627 { | 627 { |
628 return candidate.isFrameOwnerElement() ? toHTMLFrameOwnerElement(candidate.v
isibleNode) : nullptr; | 628 return candidate.isFrameOwnerElement() ? toHTMLFrameOwnerElement(candidate.v
isibleNode) : nullptr; |
629 }; | 629 }; |
630 | 630 |
631 } // namespace blink | 631 } // namespace blink |
OLD | NEW |