OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
7 * Copyright (C) 2010 Google Inc. All rights reserved. | 7 * Copyright (C) 2010 Google Inc. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
337 | 337 |
338 LayoutSize RenderBoxModelObject::stickyPositionOffset() const | 338 LayoutSize RenderBoxModelObject::stickyPositionOffset() const |
339 { | 339 { |
340 FloatRect constrainingRect; | 340 FloatRect constrainingRect; |
341 | 341 |
342 ASSERT(hasLayer()); | 342 ASSERT(hasLayer()); |
343 RenderLayer* enclosingClippingLayer = layer()->enclosingOverflowClipLayer(Ex cludeSelf); | 343 RenderLayer* enclosingClippingLayer = layer()->enclosingOverflowClipLayer(Ex cludeSelf); |
344 if (enclosingClippingLayer) { | 344 if (enclosingClippingLayer) { |
345 RenderBox* enclosingClippingBox = toRenderBox(enclosingClippingLayer->re nderer()); | 345 RenderBox* enclosingClippingBox = toRenderBox(enclosingClippingLayer->re nderer()); |
346 LayoutRect clipRect = enclosingClippingBox->overflowClipRect(LayoutPoint (), 0); // FIXME: make this work in regions. | 346 LayoutRect clipRect = enclosingClippingBox->overflowClipRect(LayoutPoint (), 0); // FIXME: make this work in regions. |
347 clipRect.move(enclosingClippingBox->paddingLeft(), enclosingClippingBox- >paddingTop()); | |
ojan
2014/02/19 20:03:24
The equivalent webkit patch didn't have this (http
ostap
2014/02/19 20:50:00
Webkit takes padding into account for the position
| |
348 clipRect.contract(LayoutSize(enclosingClippingBox->paddingLeft() + enclo singClippingBox->paddingRight(), | |
349 enclosingClippingBox->paddingTop() + enclosingClippingBox->paddingBo ttom())); | |
347 constrainingRect = enclosingClippingBox->localToContainerQuad(FloatRect( clipRect), view()).boundingBox(); | 350 constrainingRect = enclosingClippingBox->localToContainerQuad(FloatRect( clipRect), view()).boundingBox(); |
348 } else { | 351 } else { |
349 LayoutRect viewportRect = view()->frameView()->viewportConstrainedVisibl eContentRect(); | 352 LayoutRect viewportRect = view()->frameView()->viewportConstrainedVisibl eContentRect(); |
350 constrainingRect = viewportRect; | 353 constrainingRect = viewportRect; |
351 } | 354 } |
352 | 355 |
353 StickyPositionViewportConstraints constraints; | 356 StickyPositionViewportConstraints constraints; |
354 computeStickyPositionConstraints(constraints, constrainingRect); | 357 computeStickyPositionConstraints(constraints, constrainingRect); |
355 | 358 |
356 // The sticky offset is physical, so we can just return the delta computed i n absolute coords (though it may be wrong with transforms). | 359 // The sticky offset is physical, so we can just return the delta computed i n absolute coords (though it may be wrong with transforms). |
(...skipping 2439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2796 ASSERT(!beforeChild || toBoxModelObject == beforeChild->parent()); | 2799 ASSERT(!beforeChild || toBoxModelObject == beforeChild->parent()); |
2797 for (RenderObject* child = startChild; child && child != endChild; ) { | 2800 for (RenderObject* child = startChild; child && child != endChild; ) { |
2798 // Save our next sibling as moveChildTo will clear it. | 2801 // Save our next sibling as moveChildTo will clear it. |
2799 RenderObject* nextSibling = child->nextSibling(); | 2802 RenderObject* nextSibling = child->nextSibling(); |
2800 moveChildTo(toBoxModelObject, child, beforeChild, fullRemoveInsert); | 2803 moveChildTo(toBoxModelObject, child, beforeChild, fullRemoveInsert); |
2801 child = nextSibling; | 2804 child = nextSibling; |
2802 } | 2805 } |
2803 } | 2806 } |
2804 | 2807 |
2805 } // namespace WebCore | 2808 } // namespace WebCore |
OLD | NEW |