Commit Graph

16 Commits

Author SHA1 Message Date
Kearwood (Kip) Gilbert
a68e8a324c Bug 984226 - Add parameter to OverflowChangedTracker::AddFrame to distingush between frames that need nsIFrame::UpdateOverflow called and frames that only have a transform that has changed. r=dbaron
- OverflowChangedTracker::AddFrame now accepts an enumerated type parameter to
  indicate if the overflow areas of children have changed (CHILDREN_CHANGED),
  the overflow areas of the children have changed and the parent have changed
  (CHILDREN_AND_PARENT_CHANGED), or if only the transform has changed
  (TRANSFORM_CHANGED).
- OverflowChangedTracker::Flush no longer falls back to calling
  nsIFrame::UpdateOverflow when a frame lacks a PreTransformOverflowAreas
  property.
- Added an additional change hint, nsChangeHint_ChildrenOnlyTransform, which
  results in TRANSFORM_CHANGED being passed in to
  OverflowChangedTracker::AddFrame.
- In nsIFrame::FinishAndStoreOverflow, the passed in overflow is now stored as
  the InitialTransformProperty for elements that are IsTransformed().
- Partially corrected Bug 926155, by only calling
  OverflowChangedTracker::AddFrame on parents of the sticky element during
  StickyScrollContainer::UpdatePositions, using CHILDREN_CHANGED.
2014-03-13 17:21:25 -07:00
Ryan VanderMeulen
3312b5d3a8 Backed out changeset 7be71c699b85 (bug 984226) for crashtest asserts. 2014-04-08 15:31:45 -04:00
Kearwood (Kip) Gilbert
8ceb5e4552 Bug 984226 - Add parameter to OverflowChangedTracker::AddFrame to distingush between frames that need nsIFrame::UpdateOverflow called and frames that only have a transform that has changed. r=dbaron
- OverflowChangedTracker::AddFrame now accepts an enumerated type parameter to
  indicate if the overflow areas of children have changed (CHILDREN_CHANGED) or
  if the transform has changed (TRANSFORM_CHANGED).
- OverflowChangedTracker::Flush no longer falls back to calling
  nsIFrame::UpdateOverflow when a frame lacks a PreTransformOverflowAreas
  property.
- Added an additional change hint, nsChangeHint_ChildrenOnlyTransform, which
  results in TRANSFORM_CHANGED being passed in to
  OverflowChangedTracker::AddFrame.
- In nsIFrame::FinishAndStoreOverflow, the passed in overflow is now stored as
  the InitialTransformProperty for elements that are IsTransformed().
- Partially corrected Bug 926155, by only calling
  OverflowChangedTracker::AddFrame on parents of the sticky element during
  StickyScrollContainer::UpdatePositions, using CHILDREN_CHANGED.
2014-03-13 17:21:25 -07:00
Abel Lin
f25da58833 Bug 980247 - Use offsets from GetNormalPosition() when updating continuations of position:sticky elements instead of assuming that they're all currently offset by the same amount. r=dbaron, r=corey 2014-03-26 14:45:17 -04:00
L. David Baron
2e0070401d Bug 91419 patch 9: Fix comments and debugging output referring to "special" frames. r=mats 2014-02-06 17:45:33 -08:00
L. David Baron
767701956b Bug 91419 patch 5: Rename everything with SpecialSibling to IBSplitSibling. r=mats 2014-02-06 17:45:31 -08:00
Mats Palmgren
b10bfee513 Bug 949932 - Null-check the new StickyScrollContainer in case we don't have any scroll frame ancestors, e.g. in a position:fixed sub-tree. r=roc 2013-12-13 12:46:59 -05:00
Corey Ford
d67342b682 Bug 916302 - Part 2: In sticky positioning calculations, use the union of the element's margin boxes and the union of the containing-block element's content boxes. r=dholbert 2013-12-03 11:28:32 -08:00
Robert O'Callahan
003be5e875 Bug 931460. Part 1: When a <legend>'s frame is reparented to the <fieldset>, update StickyScrollContainers to match if necessary. r=mats 2013-11-23 22:48:26 +13:00
L. David Baron
6f4539fad6 Bug 828312 patch 9a: Make sticky positioning handle block-in-inline splits correctly. r=dholbert
This assumes that the specification for how position:sticky behaves for
block-in-inline splits matches the specification for position:relative,
in other words, matches
http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level .

It's also necessary for patch 9b since the new rule for handling of
style change hints is that a style change hint applies to all
continuations and all block-in-inline siblings ("special siblings").

The change in StickyScrollContainer::GetScrollRanges is really the fix
for bug 918994, but adjusted for the change here to use block-in-inline
siblings ("special siblings") in addition to continuations.
2013-09-25 12:28:08 -07:00
Corey Ford
2001483389 Bug 904197 - Use the union of continuations' rects in sticky positioning calculations. r=dholbert
Reftest inline-3.html fails because handling the sticky element's margin correctly will take more work; similarly, border/padding on containing-block continuations won't be handled quite right. Reftest column-contain-1a fails because some of the anonymous blocks inside an nsColumnSetFrame have 0 height.
2013-09-13 16:53:48 -07:00
Daniel Holbert
9f95f99f7b Bug 916115: In StickyScrollContainer::UpdatePositions, put do_QueryFrame result in a local var before comparing it for equality. r=corey 2013-09-13 10:04:23 -07:00
Corey Ford
ecb209513d Bug 897105 - Part 3: Keep sticky position layers fixed during async panning, within certain scroll ranges. r=roc 2013-09-11 21:24:32 -07:00
Corey Ford
4adc5814bd Bug 911786 - Part 1: Store computed relative position offsets. r=dholbert 2013-09-10 11:33:59 -07:00
Corey Ford
1bceaf53a9 Bug 914891 - Bail gracefully on sticky positioning with no scroll container. r=dholbert 2013-09-11 16:30:56 -07:00
Corey Ford
4b9e4cbc76 Bug 886646 - Part 6: Implement sticky positioning, calculated on reflow and scroll. r=dbaron, r=dholbert 2013-09-06 09:35:16 -04:00