| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nuanti Ltd. | 3 * Copyright (C) 2008 Nuanti Ltd. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 | 737 |
| 738 if (candidate.isOffscreenAfterScrolling && candidate.alignment < Full) | 738 if (candidate.isOffscreenAfterScrolling && candidate.alignment < Full) |
| 739 return; | 739 return; |
| 740 | 740 |
| 741 if (closest.isNull()) { | 741 if (closest.isNull()) { |
| 742 closest = candidate; | 742 closest = candidate; |
| 743 return; | 743 return; |
| 744 } | 744 } |
| 745 | 745 |
| 746 LayoutRect intersectionRect = intersection(candidate.rect, closest.rect); | 746 LayoutRect intersectionRect = intersection(candidate.rect, closest.rect); |
| 747 if (!intersectionRect.isEmpty() && !areElementsOnSameLine(closest, candidate
)) { | 747 if (!intersectionRect.isEmpty() && !areElementsOnSameLine(closest, candidate
) |
| 748 && intersectionRect == candidate.rect) { |
| 748 // If 2 nodes are intersecting, do hit test to find which node in on top
. | 749 // If 2 nodes are intersecting, do hit test to find which node in on top
. |
| 749 LayoutUnit x = intersectionRect.x() + intersectionRect.width() / 2; | 750 LayoutUnit x = intersectionRect.x() + intersectionRect.width() / 2; |
| 750 LayoutUnit y = intersectionRect.y() + intersectionRect.height() / 2; | 751 LayoutUnit y = intersectionRect.y() + intersectionRect.height() / 2; |
| 751 HitTestResult result = candidate.visibleNode->document().page()->mainFra
me()->eventHandler().hitTestResultAtPoint(IntPoint(x, y), HitTestRequest::ReadOn
ly | HitTestRequest::Active | HitTestRequest::IgnoreClipping | HitTestRequest::C
onfusingAndOftenMisusedDisallowShadowContent); | 752 HitTestResult result = candidate.visibleNode->document().page()->mainFra
me()->eventHandler().hitTestResultAtPoint(IntPoint(x, y), HitTestRequest::ReadOn
ly | HitTestRequest::Active | HitTestRequest::IgnoreClipping | HitTestRequest::C
onfusingAndOftenMisusedDisallowShadowContent); |
| 752 if (candidate.visibleNode->contains(result.innerNode())) { | 753 if (candidate.visibleNode->contains(result.innerNode())) { |
| 753 closest = candidate; | 754 closest = candidate; |
| 754 return; | 755 return; |
| 755 } | 756 } |
| 756 if (closest.visibleNode->contains(result.innerNode())) | 757 if (closest.visibleNode->contains(result.innerNode())) |
| 757 return; | 758 return; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 startingRect = nodeRectInAbsoluteCoordinates(container, true /* ignore b
order */); | 900 startingRect = nodeRectInAbsoluteCoordinates(container, true /* ignore b
order */); |
| 900 container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direct
ion, container); | 901 container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direct
ion, container); |
| 901 if (container && container->isDocumentNode()) | 902 if (container && container->isDocumentNode()) |
| 902 toDocument(container)->updateLayoutIgnorePendingStylesheets(); | 903 toDocument(container)->updateLayoutIgnorePendingStylesheets(); |
| 903 } while (!consumed && container); | 904 } while (!consumed && container); |
| 904 | 905 |
| 905 return consumed; | 906 return consumed; |
| 906 } | 907 } |
| 907 | 908 |
| 908 } // namespace WebCore | 909 } // namespace WebCore |
| OLD | NEW |