Changeset 87475 in webkit
- Timestamp:
- May 26, 2011 11:28:40 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r87473 r87475 1 2011-05-26 Shane Stephens <shanestephens@google.com> 2 3 Reviewed by James Robinson. 4 5 REGRESSION (r81992): layout triggered by position update fails to apply when transform is updated at same time 6 https://bugs.webkit.org/show_bug.cgi?id=60689 7 8 * transforms/2d/set-transform-and-top-expected.txt: Added. 9 * transforms/2d/set-transform-and-top.html: Added. 10 1 11 2011-05-26 Adam Barth <abarth@webkit.org> 2 12 -
trunk/Source/WebCore/ChangeLog
r87474 r87475 1 2011-05-26 Shane Stephens <shanestephens@google.com> 2 3 Reviewed by James Robinson. 4 5 REGRESSION (r81992): layout triggered by position update fails to apply when transform is updated at same time 6 https://bugs.webkit.org/show_bug.cgi?id=60689 7 8 When a transform is modified in a style, we were upgrading our understanding 9 of the difference from PositionedMovementOnly to SimplifiedLayout. However, 10 if the position of the style is independently changed at the same time, both 11 PositionedMovement and SimplifiedLayout passes are required. 12 13 Test: transforms/2d/set-transform-and-top.html 14 15 * rendering/RenderObject.cpp: 16 Added checks for SimplifiedLayoutAndPositionedMovement - when encountered, 17 set both PositionedMovement and SimplifiedLayout update flasgs. 18 * rendering/style/RenderStyleConstants.h: 19 Added a new StyleDifference enum value (SimplifiedLayoutAndPositionedMovement) for 20 cases when both PositionedMovement and SimplifiedLayout are required. 21 1 22 2011-05-26 Luke Macpherson <macpherson@chromium.org> 2 23 … … 379 400 * rendering/RenderTextControlSingleLine.h: 380 401 381 <<<<<<< .mine382 402 2011-05-25 Levi Weintraub <leviw@chromium.org> 383 403 … … 413 433 * rendering/RenderTextControlSingleLine.h: 414 434 415 =======416 435 2011-05-26 Jeff Miller <jeffm@apple.com> 417 436 … … 429 448 (FullScreenController::enterFullScreenRepaintCompleted): Make m_fullScreenWindow a topmost window before animating it in to ensure the taskbar is hidden. 430 449 431 >>>>>>> .r87442432 450 2011-05-26 James Robinson <jamesr@chromium.org> 433 451 -
trunk/Source/WebCore/rendering/RenderObject.cpp
r87467 r87475 1555 1555 // FIXME: when transforms are taken into account for overflow, we will need to do a layout. 1556 1556 if (!isText() && (!hasLayer() || !toRenderBoxModelObject(this)->layer()->isComposited())) { 1557 // We need to set at least SimplifiedLayout, but if PositionedMovementOnly is already set 1558 // then we actually need SimplifiedLayoutAndPositionedMovement. 1557 1559 if (!hasLayer()) 1558 1560 diff = StyleDifferenceLayout; // FIXME: Do this for now since SimplifiedLayout cannot handle updating floating objects lists. 1561 else if (diff < StyleDifferenceLayoutPositionedMovementOnly) 1562 diff = StyleDifferenceSimplifiedLayout; 1559 1563 else if (diff < StyleDifferenceSimplifiedLayout) 1560 diff = StyleDifferenceSimplifiedLayout ;1564 diff = StyleDifferenceSimplifiedLayoutAndPositionedMovement; 1561 1565 } else if (diff < StyleDifferenceRecompositeLayer) 1562 1566 diff = StyleDifferenceRecompositeLayer; … … 1638 1642 else if (updatedDiff == StyleDifferenceLayoutPositionedMovementOnly) 1639 1643 setNeedsPositionedMovementLayout(); 1640 else if (updatedDiff == StyleDifferenceSimplifiedLayout) 1644 else if (updatedDiff == StyleDifferenceSimplifiedLayoutAndPositionedMovement) { 1645 setNeedsPositionedMovementLayout(); 1646 setNeedsSimplifiedNormalFlowLayout(); 1647 } else if (updatedDiff == StyleDifferenceSimplifiedLayout) 1641 1648 setNeedsSimplifiedNormalFlowLayout(); 1642 1649 } … … 1768 1775 else 1769 1776 setNeedsSimplifiedNormalFlowLayout(); 1777 } else if (diff == StyleDifferenceSimplifiedLayoutAndPositionedMovement) { 1778 setNeedsPositionedMovementLayout(); 1779 setNeedsSimplifiedNormalFlowLayout(); 1770 1780 } else if (diff == StyleDifferenceLayoutPositionedMovementOnly) 1771 1781 setNeedsPositionedMovementLayout(); -
trunk/Source/WebCore/rendering/style/RenderStyleConstants.h
r87235 r87475 43 43 // (3) StyleDifferenceRepaint - The object just needs to be repainted. 44 44 // (4) StyleDifferenceRepaintLayer - The layer and its descendant layers needs to be repainted. 45 // (5) StyleDifferenceLayout - A layout is required. 45 // (5) StyleDifferenceLayoutPositionedMovementOnly - Only the position of this positioned object has been updated 46 // (6) StyleDifferenceSimplifiedLayout - Only overflow needs to be recomputed 47 // (7) StyleDifferenceSimplifiedLayoutAndPositionedMovement - Both positioned movement and simplified layout updates are required. 48 // (8) StyleDifferenceLayout - A full layout is required. 46 49 enum StyleDifference { 47 50 StyleDifferenceEqual, … … 53 56 StyleDifferenceLayoutPositionedMovementOnly, 54 57 StyleDifferenceSimplifiedLayout, 58 StyleDifferenceSimplifiedLayoutAndPositionedMovement, 55 59 StyleDifferenceLayout 56 60 };
Note: See TracChangeset
for help on using the changeset viewer.