Commit Graph

489 Commits

Author SHA1 Message Date
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
Cameron McCormack
05fa5f1509 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
279981cdc3 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
4796e463bc 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
95e4592ec8 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
c04d0ff563 Bug 713082 - Part 1: Remove unnecessary Util.h includes. r=Waldo 2013-12-08 21:52:33 -05:00
Mats Palmgren
7ef037c020 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
4203162239 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
feb4e2fecd Bug 929991 - Layout implementation of 'text-align: true X'. r=roc 2013-10-27 20:56:32 +00:00
Ehsan Akhgari
54c16622f8 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
6cf84bf2d9 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
636e2bb841 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
e881abc90a 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
b35a79bd2a 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
e8e21af4e0 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
06d49ffd4d Bug 907883 - Minimize #includes in layout/generic; r=roc 2013-08-22 14:32:52 -04:00
Corey Ford
6a0ae7831b Bug 898794 - Store normal frame position before applying relative positioning. r=dbaron 2013-08-08 17:20:17 -07:00
Corey Ford
18ecadcd74 Bug 901610 - Use nsStyleDisplay::IsRelativelyPositionedStyle in nsLineLayout. r=dbaron 2013-08-07 11:46:44 -07:00
Corey Ford
1113bd3173 Bug 893962 - Refactor the application of relative positioning. r=dbaron 2013-07-15 17:28:09 -07:00
Cameron McCormack
3c3a237abd Bug 864289 - Rename nsLineLayout::GetLineContainer(Frame|RS) to LineContainer\1. r=dholbert 2013-04-23 11:45:26 +10:00
Masayuki Nakano
eb1db9414a Bug 857820 part.1 Drop blink effect implementation r=dbaron 2013-04-14 19:11:07 +09:00
Cameron McCormack
3e1ca6bed4 Bug 842142 - Prevent odd text wrapping in SVG text. r=roc 2013-03-25 14:50:59 +11:00
Mats Palmgren
38a4652fde Bug 843931 - Make nsLineLayout::NewPerFrameData() allocation infallible. r=roc 2013-02-23 11:38:15 +01:00
Mats Palmgren
1a5cfe77ff Bug 843925 - Make nsLineLayout::NewPerSpanData() allocation infallible. r=roc 2013-02-23 11:38:15 +01:00
L. David Baron
ca6c366dc6 Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert
Except for the changes in:
  layout/generic/nsIFrame.h (part)
  layout/style/nsComputedDOMStyle.h (all)
  layout/style/nsRuleNode.cpp (part)
  layout/style/nsStyleContext.cpp (part)
  layout/style/nsStyleContext.h (part)
(see patch 3b in the bug), this patch was written with the sed script:
s/\<GetStyle\(Font\|Color\|List\|Text\|Visibility\|Quotes\|UserInterface\|TableBorder\|SVG\|Background\|Position\|TextReset\|Display\|Content\|UIReset\|Table\|Margin\|Padding\|Border\|Outline\|XUL\|SVGReset\|Column\)\>/Style\1/g
2013-02-16 13:51:02 -08:00
L. David Baron
3c5d51984d Bug 841789, patch 1: Rename nsIFrame::GetStyleContext() to nsIFrame::StyleContext() since it can never return null. r=dholbert
This makes it conform to our convention that getters returning pointers
that can never be null do not begin with "Get".
2013-02-15 21:38:33 -08:00
Mats Palmgren
7532b4e736 Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01:00
Scott Johnson
f9f87aa372 Bug 811825: Make max line box width ignored if frame has constrained height in order to prevent cut-off data when a user reflows-to-zoom. [r=dbaron] 2012-12-04 22:14:56 -06:00
Nicholas Nethercote
a8dd8eefd2 Bug 814312 - Avoid PL_ArenaPool recycling in the layout engine. r=roc. 2012-11-25 14:40:28 -08:00
Ehsan Akhgari
ce141d03d3 Bug 810355 - Convert nsDidReflowStatus into an enum class; r=dholbert 2012-11-13 22:47:33 -08:00
Scott Johnson
1232e9ae7f Bug 802311: Make max line box width adjustment API compute right edge of line boxes correctly to fix reflow-on-zoom issues. [r=dbaron] 2012-10-25 16:38:54 -05:00
Isaac Aggrey
990e90e88a Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Leonard Camacho
549467c74c Bug 524025 - Remove LL_* constants in nsLineLayout with separate booleans with field widths. r=dbaron 2012-09-27 21:26:40 -04:30
Scott Johnson
6014d9b8c2 Bug 780258: Add an interface to set the maximum line box width, accessible from chrome script. [r=dbaron] 2012-09-05 16:39:34 -05:00
Ehsan Akhgari
243c878d26 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Cameron McCormack
30ac972c28 Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc 2012-08-02 21:38:49 +10:00
Cameron McCormack
b6b2828049 Bug 655877 - Part 11: Ignore vertical-align and map dominant-baseline to vertical-align in SVG text frames. r=roc 2012-08-02 21:38:48 +10:00
Cameron McCormack
3aacd4f8c4 Bug 655877 - Part 10: Ignore text-align and text-align-end in SVG text frames. r=roc 2012-08-02 21:38:47 +10:00