Commit Graph

676 Commits

Author SHA1 Message Date
Simon Montagu
e7034c290f Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-21 15:16:12 -07:00
Simon Montagu
729141b175 Bug 1062963 patch 1: Logical coordinates in nsLineLayout:ReflowFrame and CanPlaceFrame. r=jfkthame 2014-10-21 15:16:11 -07:00
Mats Palmgren
fa96467143 Bug 1085701 - Report the allocation size to the OOM abort. r=roc 2014-10-21 15:42:24 +00:00
Phil Ringnalda
32261f5095 Backed out 4 changesets (bug 1062963, bug 1079139) for failures in 427129-table-caption.html in b2g reftest-6 and Android 2.3 reftest-5
Backed out changeset a9672db96a5d (bug 1079139)
Backed out changeset 241c23570a62 (bug 1062963)
Backed out changeset 90172cc0b012 (bug 1062963)
Backed out changeset 71211c4a4acc (bug 1062963)
2014-10-19 18:44:16 -07:00
Simon Montagu
5d321528ec Bug 1079139: make nsFlowAreaRect.mRect a LogicalRect. r=jfkthame 2014-10-19 12:32:17 -07:00
Simon Montagu
3c9c6d4a60 Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-19 12:32:17 -07:00
Simon Montagu
6add99b91a Bug 1062963 patch 1: Logical coordinates in nsLineLayout:ReflowFrame and CanPlaceFrame. r=jfkthame 2014-10-19 12:32:16 -07:00
Jonathan Kew
6f650aa1c6 Bug 1083104 - Fix misuse of physical instead of logical dimension for line breaking. r=smontagu 2014-10-16 09:40:20 +01:00
Simon Montagu
0f8118aec5 Bug 1076986: make LogicalMargin and LogicalRect's IsEmpty the same as nsMargin and nsRect, r=jfkthame 2014-10-04 23:02:36 -07:00
Simon Montagu
26d6d0b4d3 Bug 1069941 patch 2: reset the start coordinate of the inline frames before ReorderFrames so that the margin doesn't get added twice, r=jfkthame 2014-09-30 10:59:13 -07:00
Susanna Bowen
3c4a808a0e Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron
To account for spacing between bases or text boxes during reflow, the line
layout which manages the bases updates its inline direction coordinate based on
the preferred inline size for the corresponding text boxes. Next, the base is
reflowed at the correct inline coordinate. Each paired text box is then also
reflowed at the proper inline position determined by (1) the current position of
its corresponding base and (2) its own preferred width.

In computing intrinsic widths, accounting for spacing is less complicated. The
minimum intrinsic width is the width of the widest ruby column, and the
preferred intrinsic width is the sum of all the ruby column widths. Each ruby
column width is the maximum width of its base box and text boxes. These
individual widths are determined using GetPrefISize on the base and text boxes.

Ruby base container frames store a list of pointers to the ruby text container
frames in the segment they denote. This list of pointers is created in the ruby
frame reflow method before calling the reflow method for the ruby base
container. The list exists and is used only during reflow of the main ruby frame
and is cleared before returning from reflow.
2014-08-15 10:34:20 -07:00
Seth Fowler
0d38e30bcc Bug 913586 (Part 7) - Update Maybe users in layout. r=dbaron 2014-08-13 15:42:15 -07:00
Simon Montagu
659c93475e Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
Simon Montagu
0132cc9646 Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
Jonathan Kew
ce2922a6ab bug 789096 patch X - avoid some unconstrained-width (should be -isize) warnings with mixed writing modes. r=smontagu 2014-07-10 10:11:33 +01:00
Susanna Bowen
c6902bdbd8 Bug 1033052 - Call SetRect in ReflowFrame since the old rect does not need to be preserved. r=dbaron 2014-07-02 13:54:49 -07:00
Susanna Bowen
d46f8978ff Bug 727125 - Lazily compute LineBaselineOffset when needed so it is present after a dynamic change of 'text-decoration'. r=dbaron
This fixes the positioning of underlines set on a block or its ancestor
when drawn on children of a block that have a vertical-align !=
baseline.

The lazy computation is done all at once for all children of a block to
avoid O(N^2) searches for the line containing a frame.
2014-06-18 12:55:00 -04:00
Simon Montagu
68d911cda7 Bug 789096: make method names in nsLineLayout correspond to the respective CSS properties. r=jfkthame 2014-06-17 07:41:33 -07:00
Simon Montagu
614fa9614f Replace GetBaseline with GetLogicalBaseline and use logical coordinates in the line position and baseline getters in nsLayoutUtils. Bug 789096, r=jfkthame 2014-06-17 05:19:38 -07:00
Wes Kocher
1ec236110b Backed out 2 changesets (bug 727125) for reftest bustage on an otherwise CLOSED TREE
Backed out changeset 443361e2724a (bug 727125)
Backed out changeset 16c8d78df86e (bug 727125)
2014-06-16 13:34:50 -07:00
Susanna Bowen
9f3eeb2077 Bug 727125 - Lazily compute LineBaselineOffset when needed so it is present after a dynamic change of 'text-decoration'. r=dbaron
This fixes the positioning of underlines set on a block or its ancestor
when drawn on children of a block that have a vertical-align !=
baseline.

The lazy computation is done all at once for all children of a block to
avoid O(N^2) searches for the line containing a frame.
2014-06-16 11:58:25 -07:00
Simon Montagu
7182a1b8b9 Replace Get/SetTopAscent with Get/SetBlockStartAscent. Bug 789096, r=jfkthame 2014-06-11 02:45:31 -07:00
Simon Montagu
7c536b385e Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-06-05 02:39:36 -07:00
Susanna Bowen
7a73255fe6 Bug 1019287 - Use accessor instead of private variable in ifdef'ed logging code. r=dholbert 2014-06-02 16:26:00 -04:00
Simon Montagu
e108e6e5ef Backout 38b25d5e6cf9 because assertions 2014-05-25 03:15:00 -07:00
Simon Montagu
c619b5b393 Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-05-24 23:47:04 -07:00
Mats Palmgren
0a664c710e Bug 508665 - part 9, Remove now redundant static_cast<nsContainerFrame*> and do_QueryFrame() calls. r=roc 2014-05-24 22:20:40 +00:00
Simon Montagu
3911f131a3 Wait for CanPlaceFrame (i.e. after reflow) to apply start-margin and test whether the frame is a last continuation and so needs its end-margin applied. Bug 999446, r=jfkthame 2014-05-20 07:04:54 -07:00
Mats Palmgren
983fd3de07 Bug 1008908 - Remove assignment since the value isn't used. r=smontagu 2014-05-17 23:10:53 +00:00
Mats Palmgren
49c0341084 Bug 1008917 - part 11, make nsBlockFrame::ReflowDirtyLines() and nsLineLayout::ReflowFrame() return types 'void'. r=roc 2014-05-13 00:47:53 +00:00
Mats Palmgren
84ce46d68c Bug 1008917 - part 2,3,4, make Reflow() return type 'void', and make a few reflow related helper methods 'void' too. r=roc 2014-05-13 00:47:52 +00:00
Wes Kocher
2669e87017 Backed out 11 changesets (bug 1008917) for apparently introducing an intermittent failure of B2G Crashtest-2 on a CLOSED TREE
Backed out changeset e2ab653f688a (bug 1008917)
Backed out changeset b52154d8d900 (bug 1008917)
Backed out changeset 2ab5b01da4de (bug 1008917)
Backed out changeset f7a38df1d44f (bug 1008917)
Backed out changeset 80304bb9a572 (bug 1008917)
Backed out changeset 10ed89a302e9 (bug 1008917)
Backed out changeset 161c41991d46 (bug 1008917)
Backed out changeset 25b2475d2368 (bug 1008917)
Backed out changeset b8000b31277c (bug 1008917)
Backed out changeset 9afa5e7715e1 (bug 1008917)
Backed out changeset 5c380c21351f (bug 1008917)
2014-05-12 15:47:41 -07:00
Mats Palmgren
eaf66ca78a Bug 1008917 - part 11, make nsBlockFrame::ReflowDirtyLines() and nsLineLayout::ReflowFrame() return types 'void'. r=roc 2014-05-12 17:40:29 +00:00
Mats Palmgren
4a79e08cae Bug 1008917 - part 2,3,4, make Reflow() return type 'void', and make a few reflow related helper methods 'void' too. r=roc 2014-05-12 17:40:28 +00:00
Mats Palmgren
8a3b696788 Bug 613659 - Implement box-decoration-break layout for border/box-shadow and paddding/margin for inlines. r=cam 2014-05-05 17:55:54 +00:00
Mats Palmgren
d60800bd1b Back out bug 613659 (for regression bug 998792) 2014-04-20 19:39:24 +00:00
Mats Palmgren
8526711dd0 Bug 613659 - Implement box-decoration-break layout for border/box-shadow and paddding/margin for inlines. r=cam 2014-04-18 23:01:23 +00:00
Simon Montagu
bb6dd743b8 Make nsLineBox.mBounds a LogicalRect. Bug 789096, r=jfkthame 2014-04-16 01:03:28 -07:00
L. David Baron
3300552636 Bug 989130 - Back out changeset fe119a83b1f2 (bug 942017) while leaving the corresponding test from changeset 3c63decb4e7e. r=jfkthame
This should be backed out for two reasons:

 (1) It caused a serious regression with bullets from list-style-image,
     which no longer affect the line box height and thus overlap.

 (2) The dependency on 'line-height: normal' doesn't make sense; there's
     no reason for whether line-height is 'normal' or not to affect the
     behavior of bullets.

I don't currently have time to figure out why Gecko behavior differs
from other browsers on bug 942017, but that should be re-analyzed and
the bug fixed in a different way.  At first glance, the code should
already be leading to the expected behavior, since the bullet ought to
have the same metrics and alignment as the block's influence on the line
box's height.  Why this isn't the case should be investigated.
2014-04-01 11:53:29 -07:00
Simon Montagu
d6499b2131 Aways use the root span's writing mode when recursing into child spans in nsLineLayout::ApplyFrameJustification. Bug 986899, r=jfkthame 2014-03-24 10:50:13 -07:00
Simon Montagu
ffe3f4b03e Correction to typo in checkin for bug 789096. Bug 983691, r=jfkthame 2014-03-24 02:23:12 -07:00
L. David Baron
68a6d16355 Bug 349259 patch 1: Add an nsIContent* parameter to nsHTMLReflowState::CalcLineHeight. r=bz 2014-03-12 20:33:21 -07:00
Simon Montagu
89f7fee0ce Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-11 13:23:50 -07:00
Carsten "Tomcat" Book
db3b507cf9 Backed out changeset aeff4052ef00 (bug 789096) 2014-03-11 09:22:52 +01:00
Simon Montagu
c3baf9cc3b Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-10 22:19:03 -07:00
L. David Baron
0cde8bbf9d Bug 439204: Remove assertion "We placed a float where there was no room!" r=roc 2014-03-03 00:54:39 -08:00
L. David Baron
320fccceb4 Bug 709014 patch 1: Honor margin-left and margin-right on elements in inline layout that have 0 width and/or height (commonly, inline-blocks). r=roc
Prior to this patch, we failed to honor:
 * margin-left on elements in inline layout with 0 width and 0 height
 * margin-right on elements in inline layout with 0 width
I think that was because the code in CanPlaceFrame to discard both
margins when the width was 0 was running after the left-margin was
applied, unless the later code in PlaceFrame (checking both width 0 and
height 0) un-applied that left margin.

The assertion count change in test_value_computation.html is due to 2
additional "bad width" assertions (I presume from honoring large
margins that were previously ignored).

The change to 538935-1-ref.html is to match an improvement in rendering
of the margins in the test, where both sides of the margin are now
honored.

The change to layout/reftests/text-overflow/marker-basic-ref.html is to
keep the reference (which uses margins) rendering the same way following
the changes to margin handling.

The new behavior (in the reftests added in layout/reftests/inline/)
matches at least Chromium; I didn't check any other browsers.
2014-02-17 20:07:45 -08: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
Daniel Holbert
ab988302aa Bug 967287 part 1: Remove unnecessary nsPresContext* argument from functions defined in nsContainerFrame.h. r=mats 2014-02-06 14:07:47 -08:00
Benoit Jacob
facb072eef Bug 959380 - 1/5 - Make gfxBreakPriority a typed enum - r=jrmuizel 2014-01-23 13:26:39 -05:00