Changeset 49990 in webkit
- Timestamp:
- Oct 23, 2009 12:48:03 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r49985 r49990 1 2009-10-23 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by Sam Weinig. 4 5 Fix caretRangeFromPoint()/elementFromPoint() returns wrong result 6 for a zoomed and scrolled page. 7 https://bugs.webkit.org/show_bug.cgi?id=30689. 8 9 The real cause is the wrong calculation of event.clientX/Y when 10 page is zoomed and scolled. 11 After Sam fixed the event.clientX/Y in r49551, the hit test point 12 should be recalculated (revert r49490). 13 14 * fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll-expected.txt: Added. 15 * fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html: Added. 16 * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt: 17 * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html: 18 * fast/dom/elementFromPoint-relative-to-viewport-expected.txt: 19 * fast/dom/elementFromPoint-relative-to-viewport.html: 20 1 21 2009-10-23 Enrica Casucci <enrica@apple.com> 2 22 -
trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt
r49490 r49990 25 25 PASS Range.startOffset check (got 1, expected 1) 26 26 PASS Range.startContainer check (got [object Text], expected [object Text]) 27 PASS Range.startOffset check (got 7, expected 7)27 PASS Range.startOffset check (got 13, expected 13) 28 28 PASS Range.startContainer check (got [object Text], expected [object Text]) 29 PASS Range.startOffset check (got 3, expected 3)29 PASS Range.startOffset check (got 4, expected 4) 30 30 PASS Range.startContainer check (got [object Text], expected [object Text]) 31 PASS Range.startOffset check (got 9, expected 9)31 PASS Range.startOffset check (got 16, expected 16) 32 32 33 33 PASS successfullyParsed is true -
trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html
r49490 r49990 67 67 if (zoomOrNot == "zoom") { 68 68 test(1, 0, 0); 69 test( 7, 0, 25);70 test( 3, 50, 0);71 test( 9, 50, 25);69 test(13, 0, 25); 70 test(4, 50, 0); 71 test(16, 50, 25); 72 72 } else { 73 73 test(0, 0, 0); -
trunk/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport-expected.txt
r49490 r49990 14 14 PASS unscrolledBoxInitial is '0' 15 15 PASS scrolledDownBoxInitial is '5' 16 PASS scrolledRightBoxInitial is ' 2'17 PASS scrolledDownAndRightBoxInitial is ' 7'16 PASS scrolledRightBoxInitial is '3' 17 PASS scrolledDownAndRightBoxInitial is '8' 18 18 PASS successfullyParsed is true 19 19 -
trunk/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport.html
r49490 r49990 83 83 shouldBe(scrolledDownBox, "'5'"); 84 84 if (zoomOrNot == "zoom") { 85 shouldBe(scrolledRightBox, "' 2'");86 shouldBe(scrolledDownAndRightBox, "' 7'");85 shouldBe(scrolledRightBox, "'3'"); 86 shouldBe(scrolledDownAndRightBox, "'8'"); 87 87 } else { 88 88 shouldBe(scrolledRightBox, "'3'"); -
trunk/WebCore/ChangeLog
r49989 r49990 1 2009-10-23 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by Sam Weinig. 4 5 Fix caretRangeFromPoint()/elementFromPoint() returns wrong result 6 for a zoomed and scrolled page. 7 https://bugs.webkit.org/show_bug.cgi?id=30689. 8 9 The real cause is the wrong calculation of event.clientX/Y when 10 page is zoomed and scolled. 11 After Sam fixed the event.clientX/Y in r49551, the hit test point 12 should be recalculated (revert r49490). 13 14 Test: fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html 15 16 * dom/Document.cpp: 17 (WebCore::Document::elementFromPoint): calculate the correct point 18 relative to document when page is zoomed and scrolled. 19 (WebCore::Document::caretRangeFromPoint): calculate the correct point 20 relative to document when page is zoomed and scrolled. 21 1 22 2009-10-22 Dumitru Daniliuc <dumi@chromium.org> 2 23 -
trunk/WebCore/dom/Document.cpp
r49963 r49990 952 952 953 953 float zoomFactor = frame->pageZoomFactor(); 954 IntPoint point = roundedIntPoint(FloatPoint( (x + view()->scrollX()) * zoomFactor, (y + view()->scrollY()) * zoomFactor));954 IntPoint point = roundedIntPoint(FloatPoint(x * zoomFactor + view()->scrollX(), y * zoomFactor + view()->scrollY())); 955 955 956 956 if (!frameView->visibleContentRect().contains(point)) … … 982 982 983 983 float zoomFactor = frame->pageZoomFactor(); 984 IntPoint point = roundedIntPoint(FloatPoint( (x + view()->scrollX()) * zoomFactor, (y + view()->scrollY()) * zoomFactor));984 IntPoint point = roundedIntPoint(FloatPoint(x * zoomFactor + view()->scrollX(), y * zoomFactor + view()->scrollY())); 985 985 986 986 if (!frameView->visibleContentRect().contains(point))
Note: See TracChangeset
for help on using the changeset viewer.