| 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. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. |
| 4 * All rights reserved. | 4 * All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 if (!(mode & InputIsInFrameCoordinates)) { | 336 if (!(mode & InputIsInFrameCoordinates)) { |
| 337 transformState.move(LayoutSize(-frame()->view()->getScrollOffset())); | 337 transformState.move(LayoutSize(-frame()->view()->getScrollOffset())); |
| 338 } else { | 338 } else { |
| 339 // The flag applies to immediate LayoutView only. | 339 // The flag applies to immediate LayoutView only. |
| 340 mode &= ~InputIsInFrameCoordinates; | 340 mode &= ~InputIsInFrameCoordinates; |
| 341 } | 341 } |
| 342 | 342 |
| 343 transformState.move(parentDocLayoutItem.contentBoxOffset()); | 343 transformState.move(parentDocLayoutItem.contentBoxOffset()); |
| 344 | 344 |
| 345 parentDocLayoutItem.mapLocalToAncestor(ancestor, transformState, mode); | 345 parentDocLayoutItem.mapLocalToAncestor(ancestor, transformState, mode); |
| 346 } else if (!document().frame()->isMainFrame()) { |
| 347 // This is the case of a Frame with a remote parent. |
| 348 DCHECK(!ancestor); |
| 349 LayoutRect viewportIntersectionRect( |
| 350 frameView()->remoteViewportIntersection()); |
| 351 transformState.move(LayoutSize(-viewportIntersectionRect.x(), |
| 352 -viewportIntersectionRect.y())); |
| 346 } | 353 } |
| 347 } | 354 } |
| 348 } | 355 } |
| 349 | 356 |
| 350 const LayoutObject* LayoutView::pushMappingToContainer( | 357 const LayoutObject* LayoutView::pushMappingToContainer( |
| 351 const LayoutBoxModelObject* ancestorToStopAt, | 358 const LayoutBoxModelObject* ancestorToStopAt, |
| 352 LayoutGeometryMap& geometryMap) const { | 359 LayoutGeometryMap& geometryMap) const { |
| 353 LayoutSize offset; | 360 LayoutSize offset; |
| 354 LayoutObject* container = nullptr; | 361 LayoutObject* container = nullptr; |
| 355 | 362 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 | 460 |
| 454 bool LayoutView::mapToVisualRectInAncestorSpace( | 461 bool LayoutView::mapToVisualRectInAncestorSpace( |
| 455 const LayoutBoxModelObject* ancestor, | 462 const LayoutBoxModelObject* ancestor, |
| 456 LayoutRect& rect, | 463 LayoutRect& rect, |
| 457 MapCoordinatesFlags mode, | 464 MapCoordinatesFlags mode, |
| 458 VisualRectFlags visualRectFlags) const { | 465 VisualRectFlags visualRectFlags) const { |
| 459 if (mode & IsFixed) | 466 if (mode & IsFixed) |
| 460 rect.move(offsetForFixedPosition(true)); | 467 rect.move(offsetForFixedPosition(true)); |
| 461 | 468 |
| 462 // Apply our transform if we have one (because of full page zooming). | 469 // Apply our transform if we have one (because of full page zooming). |
| 463 if (!ancestor && layer() && layer()->transform()) | 470 if (layer() && layer()->transform()) |
| 464 rect = layer()->transform()->mapRect(rect); | 471 rect = layer()->transform()->mapRect(rect); |
| 465 | 472 |
| 466 ASSERT(ancestor); | |
| 467 if (ancestor == this) | 473 if (ancestor == this) |
| 468 return true; | 474 return true; |
| 469 | 475 |
| 470 Element* owner = document().localOwner(); | 476 Element* owner = document().localOwner(); |
| 471 if (!owner) | 477 if (!owner) { |
| 478 // This is the case of a Frame with a remote parent. |
| 479 if (!document().frame()->isMainFrame()) { |
| 480 DCHECK(!ancestor); |
| 481 LayoutRect viewportIntersectionRect( |
| 482 frameView()->remoteViewportIntersection()); |
| 483 rect.intersect(viewportIntersectionRect); |
| 484 if (rect.isEmpty()) |
| 485 return false; |
| 486 } |
| 472 return true; | 487 return true; |
| 488 } |
| 473 | 489 |
| 474 if (LayoutBox* obj = owner->layoutBox()) { | 490 if (LayoutBox* obj = owner->layoutBox()) { |
| 475 if (!(mode & InputIsInFrameCoordinates)) { | 491 if (!(mode & InputIsInFrameCoordinates)) { |
| 476 // Intersect the viewport with the visual rect. | 492 // Intersect the viewport with the visual rect. |
| 477 LayoutRect viewRectangle = viewRect(); | 493 LayoutRect viewRectangle = viewRect(); |
| 478 if (visualRectFlags & EdgeInclusive) { | 494 if (visualRectFlags & EdgeInclusive) { |
| 479 if (!rect.inclusiveIntersect(viewRectangle)) | 495 if (!rect.inclusiveIntersect(viewRectangle)) |
| 480 return false; | 496 return false; |
| 481 } else { | 497 } else { |
| 482 rect.intersect(viewRectangle); | 498 rect.intersect(viewRectangle); |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1030 bool LayoutView::paintedOutputOfObjectHasNoEffectRegardlessOfSize() const { | 1046 bool LayoutView::paintedOutputOfObjectHasNoEffectRegardlessOfSize() const { |
| 1031 // Frame scroll corner is painted using LayoutView as the display item client. | 1047 // Frame scroll corner is painted using LayoutView as the display item client. |
| 1032 if (!RuntimeEnabledFeatures::rootLayerScrollingEnabled() && | 1048 if (!RuntimeEnabledFeatures::rootLayerScrollingEnabled() && |
| 1033 (frameView()->horizontalScrollbar() || frameView()->verticalScrollbar())) | 1049 (frameView()->horizontalScrollbar() || frameView()->verticalScrollbar())) |
| 1034 return false; | 1050 return false; |
| 1035 | 1051 |
| 1036 return LayoutBlockFlow::paintedOutputOfObjectHasNoEffectRegardlessOfSize(); | 1052 return LayoutBlockFlow::paintedOutputOfObjectHasNoEffectRegardlessOfSize(); |
| 1037 } | 1053 } |
| 1038 | 1054 |
| 1039 } // namespace blink | 1055 } // namespace blink |
| OLD | NEW |