Commit Graph

689 Commits

Author SHA1 Message Date
L. David Baron
bdfefc6a91 Bug 538194 patch 2 - Redo block reflow below floats when the height of a block that does not intersect floats pushes it into the way of other floats. r=roc
This adds an additional retry loop in block reflow that we can only
trigger when reflowing a block formatting context (replacedBlock
non-null).  It can retry in two different ways, either with a narrower
width but at the same vertical position (when
ReplacedBlockFitsInAvailSpace is still true) or at a new vertical
position (which is treated as a form of clearance).

Fortunately we don't have to worry about margins collapsing *through*
such a boundary since we're dealing with a new block formatting context.

Note that Chromium passes all of the new bfc-displace-* tests, although
it moves the block formating context down unnecessarily in
bfc-shrink-1.html (which we do neither before nor after the patch),
though agrees with the width we have after the patch (but not before the
patch).
2015-08-02 21:03:09 -07:00
L. David Baron
554d404844 Bug 538194 patch 1 - Refactor some code dealing with fitting block formatting contexts around floats into separate functions. r=roc 2015-08-02 21:03:09 -07:00
Jonathan Kew
e96446a347 Bug 1131451 part 1 - Replace containerWidth with containerSize in logical-coordinate classes and APIs, frame classes, etc. r=dholbert 2015-07-16 10:07:57 +01:00
Daniel Holbert
fbbaf1f5d6 Bug 1177925: Use range-based "for" loops for nsFrameList iteration, in various places in layout. r=tn 2015-06-29 13:02:21 -07:00
Jonathan Kew
0b62970330 Bug 1174507 - Replace the frame flag CONTAINS_RELATIVE_HEIGHT with CONTAINS_RELATIVE_BSIZE, and adjust callsites appropriately. r=dholbert 2015-06-18 07:33:50 +01:00
Ehsan Akhgari
a0223619b6 Bug 1174521 - Backout the second part of bug 1143570 to fix the regression; r=roc 2015-06-17 17:45:51 -04:00
Carsten "Tomcat" Book
3081e613f4 Backed out changeset b857e7a2ab26 (bug 1174521) for timeouts in test_bug1174521.html 2015-06-17 10:12:21 +02:00
Ehsan Akhgari
81f06d4520 Bug 1174521 - Backout the second part of bug 1143570 to fix the regression; r=roc 2015-06-17 01:34:00 -04:00
Simon Montagu
adbff86748 Bug 1172774: for a box with a writing mode orthogonal to its containing block, calculate positioning values (margin, padding and offsets) in the writing mode of the containing block, r=jfkthame 2015-06-10 23:42:56 -07:00
Ehsan Akhgari
ef668caf26 Bug 1143570 - Part 2: Update the block frame's line cursor every time that nsBlockInFlowLineIterator's constructor finds a new line; r=roc 2015-06-09 15:58:56 -04:00
Jonathan Kew
5da31e3168 Bug 1167145 - Check result of PrevInFlow() before trying to call a method on it. r=dbaron 2015-05-22 08:49:30 +01:00
Jonathan Kew
2b7fc6a599 Bug 1159305 - patch 2 - Clean up layout code by using the new accessors. r=smontagu 2015-05-11 11:37:46 +01:00
Sylvestre Ledru
9d5d9ce04e Bug 1160784 - Remove a misleading declaration r=smontagu 2015-05-03 17:49:37 +02:00
Jonathan Kew
d8aec4b603 Bug 1158549 - Properly apply min/max constraints to block-size in vertical writing modes. r=smontagu 2015-04-27 09:41:37 +01:00
Mats Palmgren
d702825225 Bug 1143299 - Make frame insertion methods deal with aPrevFrame being on an overflow list. r=roc a=abillings 2015-04-11 00:21:06 +00:00
Mats Palmgren
a123a6957c Bug 1145768 - Use the right begin() iterator to compare with. r=roc
Using the wrong begin() means that RFindLineContaining would hang
in the case the frame isn't on the overflow list.  We should always
find it there though, if it wasn't found on the principal list, so
the bug is harmless apart from the assertion.
2015-04-09 17:57:34 +00:00
Jonathan Kew
1f14b0f75c Bug 1145218 - Require a new float manager if a block frame has a different writing-mode to its parent's. r=dbaron 2015-04-01 16:43:59 +01:00
Wes Kocher
6104b981f6 Backed out changeset 2bf6b633b054 (bug 1145218) 2015-04-01 11:36:17 -07:00
Jonathan Kew
66747eeaae Bug 1145218 - Require a new float manager if a block frame has a different writing-mode to its parent's. r=dbaron 2015-04-01 16:43:59 +01:00
Mats Palmgren
3f5a5b4fa1 Bug 1148833 part 3 - Remove nsIFrame::WillReflow and add a non-virtual MarkInReflow method instead that sets NS_FRAME_IN_REFLOW. Call it at the start of Reflow(). r=roc 2015-03-29 22:38:40 +00:00
Simon Montagu
df9611b0c1 Bug 1143218 patch 3: a better fix for bug 1105137 using line-left and line-right to place floats, r=jfkthame 2015-03-22 11:44:48 +02:00
Simon Montagu
c8f20338de Bug 1143218 patch 1: Back out the fix for bug 1105137, r=jfkthame 2015-03-22 11:44:48 +02:00
Xidorn Quan
b7ff3ed97e Bug 1141842 - Add LastOptionalBreakPriority to nsLineLayout to simplify some code. r=roc 2015-03-11 14:14:48 +11:00
Andrea Marchesini
00dbe99756 Bug 1134280 - Get rid of Tag() - patch 2.7 - layout/generic - Fix all the occurrences, m=smaug, r=surkov 2015-03-03 11:09:00 +00:00
Andrea Marchesini
5a32f7fa5a Bug 1134280 - Get rid of Tag() - patch 1 - Is{HTML,XUL,MathML,SVG}Element and IsAnyOf{HTML,XUL,MathML,SVG}Elements, r=smaug 2015-03-03 11:08:59 +00:00
L. David Baron
9e6abc06e5 Bug 718157 - Fix dynamic changes of percentage text-indent when the parent's size changes and the element's size does not. r=jfkthame
This code needs to move out of PrepareResizeReflow() (and things that
trigger code in it) because PrepareResizeReflow is conditioned on the
block itself resizing.

The reftest is based on a test by Jesse Ruderman <jruderman@gmail.com>.

The reftest fails without the patch and passes with the patch.
2015-02-11 22:43:05 +11:00
Simon Montagu
2664780918 Bug 1131013: when setting the position of inline frames in vertical writing modes with right-to-left direction, subtract the inline start from the container height to get the correct vertical position. r=jfkthame 2015-02-11 01:43:03 -08:00
Nicholas Nethercote
ee41df7dc2 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo. 2015-02-09 14:34:50 -08:00
Andrew McCreight
1ee96e7527 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote
0a02b5d31c Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo. 2015-02-04 20:05:36 -08:00
Jonathan Kew
d791fdd6d9 Bug 1126420 - Don't assert when intrinsic size values are used for a block-size property, just pretend they're 'auto' for now. r=dbaron 2015-01-28 09:07:59 +00:00
Jonathan Kew
0ae35653bf Bug 1122366 - pt 1 - Make nsBlockFrame::IsSelfEmpty aware of vertical writing modes. r=dbaron 2015-01-17 08:50:56 +00:00
Mats Palmgren
7421199fa6 Bug 1117596 - Simplify the code in nsBlockFrame::AddFrames somewhat to avoid a false positive warning ('Uninitialized variable: overflowLines'). r=roc 2015-01-06 11:46:26 +00:00
Mats Palmgren
dbdebb3cf0 Bug 1109571 part 3 - Implement table caption specific code for ComputeAutoSize(), GetCorrectedParent() (for getting the style parent frame) and AccessibleType(). r=roc 2014-12-26 07:21:32 +00:00
Mats Palmgren
78bec85183 Bug 447660 part 3 - When collecting / pushing a float, make sure to also pick up its next-in-flows that are in same block. r=roc
Move the AssertNoDuplicateContinuations in DrainPushedFloats earlier because
DrainOverflowLines() sometimes picks up overflow line with a placeholder for
a float that has a next-in-flow in this block and unmark those floats as
pushed floats because they aren't anymore.

Change AppendPushedFloat to push any next-in-flows that are in the same block
as the given float too.

Make DoCollectFloats collect next-in-flows in the same block.

Make VerifyOverflowSituation check some float list invariants too.
2014-12-19 16:28:43 +00:00
Mats Palmgren
9cdb4225c3 Bug 447660 part 2 - Mark an existing next-in-flow of a float that is split due to it being NOT_COMPLETE as NOT being an overflow container. r=roc 2014-12-19 16:28:43 +00:00
Mats Palmgren
4e045019f8 Bug 447660 part 1 - Replace the #define DISABLE_FLOAT_BREAKING_IN_COLUMNS with a pref to enable fragmenting of floats inside columns. Set the pref enabled by default in non-RELEASE builds only. r=roc 2014-12-19 16:28:43 +00:00
Jonathan Kew
c62bf329cd Bug 1111517 - Use new method UpdateLineContainerWidth instead of SlideLine when finalizing the width of a vertical-rl block. r=smontagu 2014-12-16 09:45:41 +00:00
Mats Palmgren
c9551802ea Bug 1108104 part 5 - Don't report a reflow as NS_FRAME_NOT_COMPLETE when it's actually complete. Because it will give the frame the wrong BSize. r=roc 2014-12-14 17:22:07 +00:00
Mats Palmgren
b3ae921e1b Bug 1108104 part 4 - Don't use the current next-sibling as a reference point where to continue the loop, since that frame may be pushed if it's also the next-in-flow. Instead, use the frame from the last iteration (the prev-sibling) and query its (potentially new) next-sibling. r=roc 2014-12-14 17:22:06 +00:00
Xidorn Quan
6c0457d6ef Bug 1107721 - Add pointer to the base line layout in nsLineLayout. r=dbaron
--HG--
extra : source : 7b1b90d6bba043a68a84bb2faeba95096fa15ca5
2014-12-05 15:05:51 -08:00
Simon Montagu
5d705fe564 Bug 1105137: treat nsFloatManager's mOrigin as an offset, not a point, and rename it to mOffset to make that clearer, r=jfkthame 2014-12-11 03:56:03 -08:00
Jonathan Kew
3ce2dbcf85 Bug 1106083 - Record the new containerWidth on lines when finalizing their placement in vertical-rl mode, so that they maintain their proper positioning during subsequent block-dir resize reflows. r=smontagu 2014-11-29 19:24:10 +00:00
Simon Montagu
64a57837a3 Bug 1105828 patch 2: Don't set UNCONSTRAINEDSIZE in an availSpace that we aren't going to use, r=jfkthame 2014-11-28 06:53:59 -08:00
Jonathan Kew
da7618ba61 Bug 1077528 - part 2 - Make nsBlockFrame consider resize flags logically instead of physically. r=smontagu 2014-11-28 09:44:05 +00:00
Jonathan Kew
b64255768e Bug 1077528 - part 1 - Provide physical and logical accessors for the m{HV}Resize flags in nsHTMLReflowState, and convert all flag users to the accessor methods. r=smontagu 2014-11-28 09:44:02 +00:00
Mats Palmgren
089be9eaf0 Bug 399262, part 2 - Exclude <select> because ::first-letter is not supported there. r=roc 2014-11-20 13:07:58 +00:00
Mats Palmgren
b4f21ec977 Bug 399262, part 1 - The -moz-button-content pseudo is also allowed to have a ::first-letter. r=roc 2014-11-20 13:07:57 +00:00
Jonathan Kew
0568cfe8b9 Bug 1093684 - part 3 - Replace |bottom| with |block-end| in a bunch of comments, and rename mCarriedOutBottomMargin to mCarriedOutBEndMargin. r=smontagu 2014-11-17 08:49:38 +00:00
Jonathan Kew
d6a828685b Bug 1093684 - part 2 - Handle vertical writing mode when computing overflow areas in nsBlockFrame. r=smontagu 2014-11-17 08:49:37 +00:00