| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 mode &= ~IsFixed; | 330 mode &= ~IsFixed; |
| 331 } | 331 } |
| 332 | 332 |
| 333 if (ancestor == this) | 333 if (ancestor == this) |
| 334 return; | 334 return; |
| 335 | 335 |
| 336 if (mode & TraverseDocumentBoundaries) { | 336 if (mode & TraverseDocumentBoundaries) { |
| 337 LayoutPartItem parentDocLayoutItem = frame()->ownerLayoutItem(); | 337 LayoutPartItem parentDocLayoutItem = frame()->ownerLayoutItem(); |
| 338 if (!parentDocLayoutItem.isNull()) { | 338 if (!parentDocLayoutItem.isNull()) { |
| 339 if (!(mode & InputIsInFrameCoordinates)) { | 339 if (!(mode & InputIsInFrameCoordinates)) { |
| 340 transformState.move(-frame()->view()->scrollOffset()); | 340 transformState.move(LayoutSize(-frame()->view()->scrollOffset())); |
| 341 } else { | 341 } else { |
| 342 // The flag applies to immediate LayoutView only. | 342 // The flag applies to immediate LayoutView only. |
| 343 mode &= ~InputIsInFrameCoordinates; | 343 mode &= ~InputIsInFrameCoordinates; |
| 344 } | 344 } |
| 345 | 345 |
| 346 transformState.move(parentDocLayoutItem.contentBoxOffset()); | 346 transformState.move(parentDocLayoutItem.contentBoxOffset()); |
| 347 | 347 |
| 348 parentDocLayoutItem.mapLocalToAncestor(ancestor, transformState, mode); | 348 parentDocLayoutItem.mapLocalToAncestor(ancestor, transformState, mode); |
| 349 } | 349 } |
| 350 } | 350 } |
| 351 } | 351 } |
| 352 | 352 |
| 353 const LayoutObject* LayoutView::pushMappingToContainer( | 353 const LayoutObject* LayoutView::pushMappingToContainer( |
| 354 const LayoutBoxModelObject* ancestorToStopAt, | 354 const LayoutBoxModelObject* ancestorToStopAt, |
| 355 LayoutGeometryMap& geometryMap) const { | 355 LayoutGeometryMap& geometryMap) const { |
| 356 LayoutSize offsetForFixedPosition; | 356 LayoutSize offsetForFixedPosition; |
| 357 LayoutSize offset; | 357 LayoutSize offset; |
| 358 LayoutObject* container = nullptr; | 358 LayoutObject* container = nullptr; |
| 359 | 359 |
| 360 if (m_frameView) { | 360 if (m_frameView) { |
| 361 offsetForFixedPosition = | 361 offsetForFixedPosition = LayoutSize(m_frameView->scrollOffset()); |
| 362 LayoutSize(LayoutSize(m_frameView->scrollOffset())); | |
| 363 if (hasOverflowClip()) | 362 if (hasOverflowClip()) |
| 364 offsetForFixedPosition = LayoutSize(scrolledContentOffset()); | 363 offsetForFixedPosition = LayoutSize(scrolledContentOffset()); |
| 365 } | 364 } |
| 366 | 365 |
| 367 if (geometryMap.getMapCoordinatesFlags() & TraverseDocumentBoundaries) { | 366 if (geometryMap.getMapCoordinatesFlags() & TraverseDocumentBoundaries) { |
| 368 if (LayoutPart* parentDocLayoutObject = toLayoutPart( | 367 if (LayoutPart* parentDocLayoutObject = toLayoutPart( |
| 369 LayoutAPIShim::layoutObjectFrom(frame()->ownerLayoutItem()))) { | 368 LayoutAPIShim::layoutObjectFrom(frame()->ownerLayoutItem()))) { |
| 370 offset = -LayoutSize(m_frameView->scrollOffset()); | 369 offset = -LayoutSize(m_frameView->scrollOffset()); |
| 371 offset += parentDocLayoutObject->contentBoxOffset(); | 370 offset += parentDocLayoutObject->contentBoxOffset(); |
| 372 container = parentDocLayoutObject; | 371 container = parentDocLayoutObject; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 396 return; | 395 return; |
| 397 | 396 |
| 398 if (mode & TraverseDocumentBoundaries) { | 397 if (mode & TraverseDocumentBoundaries) { |
| 399 if (LayoutPart* parentDocLayoutObject = toLayoutPart( | 398 if (LayoutPart* parentDocLayoutObject = toLayoutPart( |
| 400 LayoutAPIShim::layoutObjectFrom(frame()->ownerLayoutItem()))) { | 399 LayoutAPIShim::layoutObjectFrom(frame()->ownerLayoutItem()))) { |
| 401 // A LayoutView is a containing block for fixed-position elements, so don'
t carry this state across frames. | 400 // A LayoutView is a containing block for fixed-position elements, so don'
t carry this state across frames. |
| 402 parentDocLayoutObject->mapAncestorToLocal(ancestor, transformState, | 401 parentDocLayoutObject->mapAncestorToLocal(ancestor, transformState, |
| 403 mode & ~IsFixed); | 402 mode & ~IsFixed); |
| 404 | 403 |
| 405 transformState.move(parentDocLayoutObject->contentBoxOffset()); | 404 transformState.move(parentDocLayoutObject->contentBoxOffset()); |
| 406 transformState.move(-frame()->view()->scrollOffset()); | 405 transformState.move(LayoutSize(-frame()->view()->scrollOffset())); |
| 407 } | 406 } |
| 408 } else { | 407 } else { |
| 409 ASSERT(!ancestor); | 408 ASSERT(!ancestor); |
| 410 } | 409 } |
| 411 | 410 |
| 412 if (mode & IsFixed) | 411 if (mode & IsFixed) |
| 413 transformState.move(frame()->view()->scrollOffset()); | 412 transformState.move(LayoutSize(frame()->view()->scrollOffset())); |
| 414 } | 413 } |
| 415 | 414 |
| 416 void LayoutView::computeSelfHitTestRects(Vector<LayoutRect>& rects, | 415 void LayoutView::computeSelfHitTestRects(Vector<LayoutRect>& rects, |
| 417 const LayoutPoint&) const { | 416 const LayoutPoint&) const { |
| 418 // Record the entire size of the contents of the frame. Note that we don't jus
t | 417 // Record the entire size of the contents of the frame. Note that we don't jus
t |
| 419 // use the viewport size (containing block) here because we want to ensure thi
s includes | 418 // use the viewport size (containing block) here because we want to ensure thi
s includes |
| 420 // all children (so we can avoid walking them explicitly). | 419 // all children (so we can avoid walking them explicitly). |
| 421 rects.append( | 420 rects.append( |
| 422 LayoutRect(LayoutPoint::zero(), LayoutSize(frameView()->contentsSize()))); | 421 LayoutRect(LayoutPoint::zero(), LayoutSize(frameView()->contentsSize()))); |
| 423 } | 422 } |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1035 if (block) | 1034 if (block) |
| 1036 block->adjustChildDebugRect(rect); | 1035 block->adjustChildDebugRect(rect); |
| 1037 | 1036 |
| 1038 rect.setWidth(LayoutUnit(viewWidth(IncludeScrollbars))); | 1037 rect.setWidth(LayoutUnit(viewWidth(IncludeScrollbars))); |
| 1039 rect.setHeight(LayoutUnit(viewHeight(IncludeScrollbars))); | 1038 rect.setHeight(LayoutUnit(viewHeight(IncludeScrollbars))); |
| 1040 | 1039 |
| 1041 return rect; | 1040 return rect; |
| 1042 } | 1041 } |
| 1043 | 1042 |
| 1044 } // namespace blink | 1043 } // namespace blink |
| OLD | NEW |