Commit Graph

216 Commits

Author SHA1 Message Date
Susanna Bowen
fa2e35634d 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
458f761ae7 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
759b949444 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
a72efc4487 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
49c99c035b 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
30b9d24621 Replace Get/SetTopAscent with Get/SetBlockStartAscent. Bug 789096, r=jfkthame 2014-06-11 02:45:31 -07:00
Simon Montagu
16eca1809b Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-06-05 02:39:36 -07:00
Susanna Bowen
d6e4d34022 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
352872b697 Backout 38b25d5e6cf9 because assertions 2014-05-25 03:15:00 -07:00
Simon Montagu
036f3f407e Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-05-24 23:47:04 -07:00
Mats Palmgren
91f8c74823 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
7b1f99fb8a 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
b605175109 Bug 1008908 - Remove assignment since the value isn't used. r=smontagu 2014-05-17 23:10:53 +00:00
Mats Palmgren
d6b3dd6047 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
0e3e44e19c 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
a3ae69617c 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
34c41a411e 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
aa51f3f125 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
093343bb24 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
07cab7aa81 Back out bug 613659 (for regression bug 998792)
--HG--
rename : layout/reftests/backgrounds/background-size-slice.html => layout/reftests/backgrounds/background-size-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-slice.html => layout/reftests/backgrounds/background-size-cover-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-clone.html => layout/reftests/backgrounds/background-size-cover-each-box.html
rename : layout/reftests/backgrounds/background-size-clone.html => layout/reftests/backgrounds/background-size-each-box.html
2014-04-20 19:39:24 +00:00
Mats Palmgren
db3de125fb 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
f84bfb284b Make nsLineBox.mBounds a LogicalRect. Bug 789096, r=jfkthame 2014-04-16 01:03:28 -07:00
L. David Baron
0f609689eb 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
3766f98942 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
27a769cf38 Correction to typo in checkin for bug 789096. Bug 983691, r=jfkthame 2014-03-24 02:23:12 -07:00
L. David Baron
2d1064d968 Bug 349259 patch 1: Add an nsIContent* parameter to nsHTMLReflowState::CalcLineHeight. r=bz 2014-03-12 20:33:21 -07:00
Simon Montagu
b160bea1d5 Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-11 13:23:50 -07:00
Carsten "Tomcat" Book
7f2e815865 Backed out changeset aeff4052ef00 (bug 789096) 2014-03-11 09:22:52 +01:00
Simon Montagu
5e7ae0913d Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-10 22:19:03 -07:00
L. David Baron
8f1703567a 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
b3bff6bf01 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
6d9425e5a1 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
e9a642b785 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
d136b8327b Bug 959380 - 1/5 - Make gfxBreakPriority a typed enum - r=jrmuizel 2014-01-23 13:26:39 -05:00
Cameron McCormack
b6432d5b09 Bug 957770 - Take SVG font size scaling into account when vertically aligning text. r=roc 2014-01-11 12:13:09 +11:00
Jonathan Kew
1598f60cbd bug 735577 - pt 4.1 - use accessor functions for some physical-coordinate fields in nsHTMLReflowMetrics, in preparation for logicalization. r=smontagu 2013-12-27 17:59:52 +00:00
Jonathan Kew
58325cd45d bug 735577 - pt 3.2 - update the rest of layout code to use the new accessors on nsHTMLReflowState. r=smontagu 2013-12-27 17:59:21 +00:00
Quentin Headen
4cd0aa7229 Bug 731667 - Rewrite mtable implementation to avoid use of _moz-* attributes - implement parsing and rendering. r=karlt, r=bz 2013-12-13 12:42:43 -05:00
Birunthan Mohanathas
bd0f161288 Bug 713082 - Part 1: Remove unnecessary Util.h includes. r=Waldo 2013-12-08 21:52:33 -05:00
Mats Palmgren
1a42a53a7b Bug 942017 - Only let the bullet frame affect the line height when line-height:normal. r=jfkthame 2013-12-08 01:11:50 +00:00
Mats Palmgren
8906cefec1 Bug 931853 - Adjust the frame's vertical position to account for a negative margin larger than its height, in quirks mode. r=roc 2013-11-12 18:38:29 +00:00
Mats Palmgren
46b33ecf22 Bug 929991 - Layout implementation of 'text-align: true X'. r=roc 2013-10-27 20:56:32 +00:00
Ehsan Akhgari
cfed39e52c Bug 921753 - Part 3: Avoid #including nsStyleStructInlines.h in nsHTMLReflowState.h; r=roc
This patch reduces the number of files that transitively #include
gfx/2d.h from 1362 to 1268.
2013-10-01 17:01:49 -04:00
Ehsan Akhgari
f720bbfbaa Bug 921876 - Stop #including nsIFrame.h in nsLayoutUtils.h; r=roc
This patch does the following:
* Move nsIFrame::IntrinsicSize to mozilla::IntrinsicSize so that it can
  be forward-declared.
* Move a number of templated inline nsLayoutUtils methods to nsIFrame.
* Use mozilla::layout::FrameChildListID instead of the
  nsIFrame::ChildListID typedef in nsLayoutUtils.h.
* Move nsReflowFrameRunnable to its only user, nsProgressMeterFrame.cpp.
* Make a number of functions requiring nsIFrame.h out-of-line.
* Remove the nsIFrame.h #include from nsLayoutUtils.h and add it to the
  places which require it implicitly.
2013-09-30 17:26:04 -04:00
Mats Palmgren
ae50ca5ce4 Bug 919318 - Drop the Get prefix on the frame methods GetFirstContinuation, GetLastContinuation, GetFirstInFlow, GetLastInFlow and also on nsLayoutUtils::GetLastContinuationWithChild, because they never return null. r=dholbert 2013-09-25 11:42:34 +00:00
Daniel Holbert
e999460fd0 Bug 919871: Make .cpp files in layout/generic #include their corresponding .h file first. r=mats 2013-09-24 18:43:43 -07:00
L. David Baron
4d67f6dd65 Bug 916751: Do not use nsIFrame::MovePositionBy from nsLineLayout. r=dholbert
Since bug 916751 is hard (for me) to test, I haven't confirmed for sure
that this fixes the bug.

However, it fixes the assertions that bug 911786 part 3 triggers in
layout/base/crashtests/317934-1.html through this codepath.
2013-09-17 04:44:16 -07:00
Corey Ford
17fd17cb8b Bug 911786 - Part 2: Reapply relative positioning when moving frames without reflowing them. r=dholbert 2013-09-11 11:51:42 -07:00
Ehsan Akhgari
f56168072d Bug 907883 - Minimize #includes in layout/generic; r=roc
--HG--
extra : rebase_source : 5e87b764a12b05aff477c71547e2131be67ca93b
2013-08-22 14:32:52 -04:00
Corey Ford
c1f2a8126d Bug 898794 - Store normal frame position before applying relative positioning. r=dbaron 2013-08-08 17:20:17 -07:00