Commit Graph

578 Commits

Author SHA1 Message Date
Masayuki Nakano
de1fe00cec Bug 537230 part.1 Paint connection of complex style decoration lines smoothly r=roc 2012-07-04 14:59:50 +09:00
Ehsan Akhgari
6ef72aef93 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
Matt Woodrow
1f0dbc7c74 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Jonathan Watt
9ac7bb2267 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
L. David Baron
e447a395fb Track TEXT_IN_TEXTRUN_USER_DATA separately for inflated and non-inflated text runs. (Bug 718290) r=roc 2012-06-24 16:25:39 -07:00
Ehsan Akhgari
217735f725 Bug 758992 - Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor (layout parts); r=roc
--HG--
extra : rebase_source : 9f3da1b47dcb9d7cc950488b9b70aa682b6984de
2012-06-18 23:26:34 -04:00
Ryan VanderMeulen
b74e4a29db Revert c39d36167b99 due to a horribly munged backout. 2012-06-10 19:44:50 -04:00
Ryan VanderMeulen
061d4c2616 Backout the bug 754202 backout due to orange. 2012-06-10 19:37:47 -04:00
Robert O'Callahan
31953a0563 Bug 731293. Remove nsFrameManager parameter from nsLayoutUtils::GetParentOrPlaceholderFor. r=mats 2012-06-09 00:22:25 +12:00
L. David Baron
13df4204c7 Fix two pieces of cached information that were preventing font size inflation from applying correctly during intrinsic width calculation when intrinsic width calculation had already been done without font size inflation. (Bug 748434) r=roc
The first of these pieces of information is the intrinsic widths cached
on a block.

The second of them is the font inflation cached on a text frame (which
might be set to 1.0 at this point if a text frame has previously had
intrinsic width calculation done on it, but hasn't been reflowed).
2012-06-05 19:13:41 -07:00
L. David Baron
11e48078eb Back out changeset 81f6b1cfbba5627425837ff993ca7012db22b23b (bug 748434) due to reftest failures. 2012-06-05 16:55:48 -07:00
L. David Baron
e13adf476e Fix two pieces of cached information that were preventing font size inflation from applying correctly during intrinsic width calculation when intrinsic width calculation had already been done without font size inflation. (Bug 748434) r=roc
The first of these pieces of information is the intrinsic widths cached
on a block.

The second of them is the font inflation cached on a text frame (which
might be set to 1.0 at this point if a text frame has previously had
intrinsic width calculation done on it, but hasn't been reflowed).
2012-06-05 15:52:28 -07:00
Trevor Saunders
1192ef8bd9 bug 759033 - nsAccessible -> Accessible and nsAccessibleWrap -> AccessibleWrap r=surkov
--HG--
rename : accessible/src/atk/nsAccessibleWrap.cpp => accessible/src/atk/AccessibleWrap.cpp
rename : accessible/src/atk/nsAccessibleWrap.h => accessible/src/atk/AccessibleWrap.h
rename : accessible/src/base/nsAccessible.cpp => accessible/src/generic/Accessible.cpp
rename : accessible/src/base/nsAccessible.h => accessible/src/generic/Accessible.h
rename : accessible/src/mac/nsAccessibleWrap.h => accessible/src/mac/AccessibleWrap.h
rename : accessible/src/mac/nsAccessibleWrap.mm => accessible/src/mac/AccessibleWrap.mm
rename : accessible/src/msaa/nsAccessibleWrap.cpp => accessible/src/msaa/AccessibleWrap.cpp
rename : accessible/src/msaa/nsAccessibleWrap.h => accessible/src/msaa/AccessibleWrap.h
rename : accessible/src/other/nsAccessibleWrap.cpp => accessible/src/other/AccessibleWrap.cpp
rename : accessible/src/other/nsAccessibleWrap.h => accessible/src/other/AccessibleWrap.h
2012-05-28 21:18:45 -04:00
Mark Capella
4403803316 Bug 745428 - densify nsTextAccessible, r=surkov, f=tbsaunde
--HG--
rename : accessible/src/atk/nsTextAccessibleWrap.h => accessible/src/atk/TextLeafAccessibleWrap.h
rename : accessible/src/base/nsTextAccessible.cpp => accessible/src/generic/TextLeafAccessible.cpp
rename : accessible/src/base/nsTextAccessible.h => accessible/src/generic/TextLeafAccessible.h
rename : accessible/src/mac/nsTextAccessibleWrap.h => accessible/src/mac/TextLeafAccessibleWrap.h
rename : accessible/src/msaa/nsTextAccessibleWrap.cpp => accessible/src/msaa/TextLeafAccessibleWrap.cpp
rename : accessible/src/msaa/nsTextAccessibleWrap.h => accessible/src/msaa/TextLeafAccessibleWrap.h
rename : accessible/src/other/nsTextAccessibleWrap.h => accessible/src/other/TextLeafAccessibleWrap.h
2012-05-23 14:05:57 -04:00
Mats Palmgren
1e843489e3 Bug 756241. r=roc 2012-05-23 17:27:15 +02:00
Ed Morley
f0346ff780 Merge mozilla-central to mozilla-inbound 2012-05-21 13:19:38 +01:00
Gervase Markham
87620f5676 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
L. David Baron
3ab78f01f9 Remove width determination parameters from font inflation methods. (Bug 747720, patch 5) r=roc
These are no longer needed since we're getting the width from the
nsFontInflationData.
2012-05-20 22:18:28 -07:00
Simon Montagu
8e7ad6721b Start painting text shadow of selection from the left edge in RTL text. Bug 755994, r=roc 2012-05-17 13:34:06 +03:00
Jeff Muizelaar
3efeae39c6 Bug 753058. Add SAMPLE_LABELS for shadows. r=ehsan
This will make this things more obvious on the profile.
2012-05-08 18:10:02 -04:00
Makoto Kato
6bbd48cb4a Bug 249159 - Part 2 Implement CSS3 Text word-break property. r=dbaron, smontagu 2012-05-07 12:18:23 -07:00
Jeff Muizelaar
4c6a9736de Bug 745864. Add SAMPLE_LABELs to layout code. r=roc, a=joe
--HG--
extra : rebase_source : d826780c34692d333442b6bf563791b53bf3aa3d
2012-04-16 14:37:59 -04:00
Robert O'Callahan
833e8a244f Bug 733607. Restructure logic to compute snapped bounds of display items in layer coordinates. Moves responsibility for computing snapped bounds from within the display items to callers of GetBounds/GetOpaqueRegion. r=tnikkel
Previously we snapped the results of nsDisplayItem::GetBounds and
nsDisplayItem::GetOpaqueRegion internally. By tracking which display items were
inside transforms, we disabled snapping quite conservatively whenever an ancestor
had a transform, which is undesirable.

With this patch, we don't snap inside GetBounds or GetOpaqueRegion, but just return
a boolean flag indicating whether the item will draw with snapping or not. This flag
is conservative so that "true" means we will snap (if the graphics context has a transform
that allows snapping), but "false" means we might or might not snap (so it's always safe
to return false).

FrameLayerBuilder takes over responsibility for snapping item bounds. When it converts
display item bounds to layer pixel coordinates, it checks the snap flag returned from
the display item and checks whether the transform when we draw into the layer will be
a known scale (the ContainerParameters scale factors) plus integer translation. If both
are true, we snap the item bounds when converting to layer pixel coordinates. With
this approach, we can snap item bounds even when the items have ancestors with active
transforms.
2012-04-10 23:24:18 +12:00
Scott Johnson
10f76a2526 Bug 708187: Disable caching of font inflation inside of BuildTextRunsScanner to prevent bleeding of bad values. [r=dbaron] 2012-03-26 22:37:16 -07:00
Simon Montagu
8ea4557aa9 Add a mParagraphDepth member to BidiParagraphData and cache it on frames to track nested bidi-isolated paragraphs. Use mParagraphDepth (* 2 + isRTL in order to keep LTR even and RTL odd) as the initial paragraph embedding level instead of pushing a stack of embedding codes. Pass the <bdi> frame instead of its first-child to BidiParagraphData::Reset and save a call to GetParent(). Split inline ancestors before and after bidi-isolated paragraphs, in the same way that we currently do between runs in different directions. This required also adding code to SplitInlineAncestors to handle situations where the parent frame is being split before its first child or after its last child. In JoinInlineAncestors, prevent frames that belong to paragraphs isolated from one another from being rejoined. Bug 712600, r=ehsan, roc 2012-01-11 21:26:02 +02:00
Daniel Holbert
ce6dc9863d Bug 732610 - Make nsIFrame::ComputeSize take a bitfield 'aFlags' instead of a bool 'aShrinkWrap'. r=dbaron 2012-03-16 11:01:05 -07:00
Cameron McCormack
96242ad44d Bug 736326 - Fix nscoord/nscolor typo. r=dbaron 2012-03-16 11:53:50 +11:00
Mats Palmgren
95f1774653 Bug 728908 - Make the Overflow lines property have both a nsLineList and a nsFrameList for fast access to the last frame, eliminate SetNextSibling calls, and to support GetChildList(kOverflowList). part 1/2 r=bz 2012-03-08 02:57:37 +01:00
Simon Montagu
6091adf028 Use GetGeneralCategory in IsPunctuationMark instead of the precompiled ccmap. Bug 731222, r=jfkthame 2012-03-01 00:17:27 -08:00
Jonathan Kew
9e665aa5d9 bug 724826 pt 3 - replace users of nsIUGenCategory service within libxul with direct access to mozilla::unicode::GetGenCategory. r=smontagu 2012-02-24 10:15:46 +00:00
Mats Palmgren
4986c8d89f Bug 638937 - For text frames that are a child a floating first-letter frame, use the parent of the associated placeholder as the line-container to search. r=roc 2012-02-22 00:50:16 +01:00
Cameron Kaiser
6e8b40d35a Bug 724453. Don't assume that sizeof(bool) == 1 when memsetting arrays of bools in nsTextFrame. r=bzbarsky 2012-02-06 13:00:54 -05:00
Edwin Flores
bc6a31b0b1 Bug 719288 - Fill and stroke SVG text with one Draw call r=roc 2012-02-04 13:11:09 +00:00
Edwin Flores
3f5de025f0 Bug 710521 - Refactor gfxFont to separate out drawing stroke and drawing to path. r=roc 2012-01-26 13:11:18 +01:00
L. David Baron
67a0afcf6e Honor inflation during intrinsic width computation when needed. (Bug 706609, patch 6) r=roc
This is the second of two patches to honor inflation during intrinsic
width calculation (which we need to do to make some form controls
inflate correctly).
2012-01-24 17:21:29 -08:00
L. David Baron
d789ef0b1b Switch nsLayoutUtils inflation methods to the new setup with state on the pres context. (Bug 706609, patch 5) r=roc
This is the third of three patches to rework the way we handle getting
the font inflation container and width data during reflow, which are
needed so that we can sometimes honor inflation during intrinsic width
calculation (which we need to do to make some form controls inflate
correctly).
2012-01-24 17:21:29 -08:00
Jonathan Watt
9fb3c8bb9f Bug 416581, part 1 - Move mLanguage from nsStyleVisibility to nsStyleFont. r=dbaron. 2012-01-24 13:09:55 +00:00
Jonathan Kew
c1c93594ee bug 715471 - use fallible allocation for potentially large buffers in nsTextFrameThebes.cpp. r=roc 2012-01-14 22:19:51 +00:00
Ed Morley
cfb250c0d7 Backout 148044813372 (bug 715471) for multiple test failures 2012-01-13 11:26:13 +00:00
Jonathan Kew
896e762f5e bug 715471 - use fallible allocation for potentially large buffers in nsTextFrameThebes.cpp. r=roc 2012-01-13 10:35:02 +00:00
Josh Matthews
93a2adcf34 Bug 454790 - Allow programmatic selection of -moz-user-select: none frames. r=roc 2012-01-12 15:59:19 -05:00
Simon Montagu
3ca7ecdbcb Implement text-align-last. Bug 536557, r=dbaron 2012-01-12 19:52:21 +02:00
Ed Morley
2099bb7e42 Backout 6605cc311ec5 & 9217303c2e5c (bug 536557) for M4 orange 2012-01-12 15:33:00 +00:00
Simon Montagu
dec2df3fe1 Implement text-align-last. Bug 536557, r=dbaron 2012-01-12 16:29:20 +02:00
Jonathan Kew
1bf3af6cfe bug 703100 - pt 3 - remove copy of original characters from gfxTextRun. r=roc 2011-12-06 12:39:19 +00:00
Jonathan Kew
f702c54c74 bug 703100 - pt 1 - eliminate gfxTextRunWordCache and gfxTextRunCache. r=roc 2011-12-06 12:39:18 +00:00
Ehsan Akhgari
0382216924 Bug 713856 - Dynamic change of DOM in lists before block element creates blank line; r=roc 2011-12-30 17:22:47 -05:00
Mats Palmgren
fa7242bcc4 Bug 700031 - "ASSERTION: Can only call this on frames that have been reflowed" with too-deep frame tree. r=roc 2011-12-29 14:21:00 +01:00
Nicholas Nethercote
33730101c6 Bug 711908 - Fix a bunch of GCC warnings in layout. r=dbaron. 2011-12-19 19:46:39 -08:00
Mats Palmgren
77f0b019cd Bug 619273 - Move the selection state bit from frames to content nodes. r=smaug 2011-12-20 10:15:41 +01:00
Matt Brubeck
5d8466250b Back out bug 710521, bug 672013, bug 702739 because of Mac reftest failures 2011-12-18 08:15:09 -08:00
Edwin Flores
68f8de97ea Bug 710521. Small refactor of gfxFont to separate drawing to paths and drawing strokes. r=roc 2011-12-18 21:53:03 +13:00
Alexander Surkov
43913eb06b Bug 706335 - Remove text accesible getting no text inside a preformatted area, r=marcoz, bz 2011-12-02 16:52:56 +08:00
L. David Baron
f7abcf04bc Make other users of font metrics (other than MathML and XUL) honor font size inflation. (Bug 627842, patch 15) r=roc
This does not address users of font metrics in layout/mathml/ (for text
size and alignment issues) or in layout/xul (for text size and sizing of
listbox and tree widgets):  see all the callers of GetFontMetricsFor*
in those directories.
2011-11-23 18:48:23 -08:00
L. David Baron
1bf4346bd3 Apply font size inflation to line heights. (Bug 627842, patch 11) r=roc
Since font size inflation applies to the text after style data
computation, we must separately apply this inflation to line heights.
2011-11-23 18:48:23 -08:00
L. David Baron
bb227ad838 Remove the unused context parameter to MeasureCharClippedText. (Bug 627842, patch 10) r=roc 2011-11-23 18:48:23 -08:00
L. David Baron
4fc409e924 Apply font size inflation to text. (Bug 627842, patch 9) r=roc
This applies the font size inflation to reflow and painting of text
frames.  However, it does not (by design) apply to intrinsic width
computation, since the inflation is itself a function of the containers
width, which can depend on the intrinsic width.
2011-11-23 18:48:23 -08:00
L. David Baron
1d218d5fcd Pass block's reflow state to nsTextFrame::UnionAdditionalOverflow. (Bug 627842, patch 8) r=roc 2011-11-23 18:48:23 -08:00
L. David Baron
b9738c841b Use the text run's font group for the tab width instead of recomputing it from the frame. (Bug 627842, patch 7) r=roc 2011-11-23 18:48:23 -08:00
Matt Woodrow
a570c6f017 Bug 700240 - Print contents of TextFrames. r=mats 2011-11-17 16:44:16 +13:00
Phil Ringnalda
15887bd189 Backout changesets c9abc8ef4626, d62512892555, 69f89ee5d08f, c511af7d8f58, 6a6a560a1492, ac0ec1183d19, 46669afabd15, 74f32abaa8c0, f197554cf989, 0a2405eb5b90, b48954598d7d, e0a82577259c, 0235d1541e58, 450f2557d3a2, e24d196602bf, 03c2ea0eeba3, 7aca4ef8e538, 11ec362e780b, 4b92a3b96446 (bug 627842) for Windows crashtest assertions and Android reftest failures
--HG--
extra : rebase_source : fc8946055314369bfba5038ded32afcb00bf134d
2011-11-14 22:12:31 -08:00
L. David Baron
7fbf50a659 Make other users of font metrics (other than MathML and XUL) honor font size inflation. (Bug 627842, patch 15) r=roc
This does not address users of font metrics in layout/mathml/ (for text
size and alignment issues) or in layout/xul (for text size and sizing of
listbox and tree widgets):  see all the callers of GetFontMetricsFor*
in those directories.
2011-11-15 17:02:01 +13:00
L. David Baron
d0fd3c605b Apply font size inflation to line heights. (Bug 627842, patch 11) r=roc
Since font size inflation applies to the text after style data
computation, we must separately apply this inflation to line heights.
2011-11-15 17:02:01 +13:00
L. David Baron
162bc661a1 Remove the unused context parameter to MeasureCharClippedText. (Bug 627842, patch 10) r=roc 2011-11-15 17:02:01 +13:00
L. David Baron
6b02f59bf3 Apply font size inflation to text. (Bug 627842, patch 9) r=roc
This applies the font size inflation to reflow and painting of text
frames.  However, it does not (by design) apply to intrinsic width
computation, since the inflation is itself a function of the containers
width, which can depend on the intrinsic width.
2011-11-15 17:02:01 +13:00
L. David Baron
0e16a65517 Pass block's reflow state to nsTextFrame::UnionAdditionalOverflow. (Bug 627842, patch 8) r=roc 2011-11-15 17:02:01 +13:00
L. David Baron
1986127472 Use the text run's font group for the tab width instead of recomputing it from the frame. (Bug 627842, patch 7) r=roc 2011-11-15 17:02:01 +13:00
Timothy Nikkel
d9c707d348 Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-21 12:45:32 -05:00
Timothy Nikkel
0d0f09e5f7 Backout 18f70ede04b0 (bug 694213). 2011-10-20 20:59:47 -05:00
Timothy Nikkel
aaa796727a Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-20 12:44:28 -05:00
David Bolter
85f31c2f98 Bug 680085 - Don't traverse dirty text frames when computing rendered text. r=roc
We now bail in GetRenderedText when we encounter dirty text frames. This should be okay since dirty text frames should be reflowed at some point and we'll refresh our accessible text cache. (relanding)
2011-10-19 09:05:18 -04:00
David Bolter
bce255bc7d Backout 783daf190579 (Bug 680085). Could be causing talos deviation. 2011-10-18 15:04:46 -04:00
Timothy Nikkel
ab16fdd5c9 Backout 8db8c9ce92c5 (bug 694213). 2011-10-18 00:41:10 -05:00
Timothy Nikkel
5b00acba12 Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-17 19:56:03 -05:00
Ehsan Akhgari
2a602a5685 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
David Bolter
8c39619ba5 Bug 680085 - Don't traverse dirty text frames when computing rendered text. r=roc
We now bail in GetRenderedText when we encounter dirty text frames. This shouldm be okay since dirty text frames should be reflowed at some point and we'll refresh our accessible text cache.
2011-10-17 10:30:33 -04:00
Jeff Walden
b7753477cf Bug 693469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. (Exceptions: assigning to static initializers, use in static assertions, as template parameters, etc. These will go away when the relevant compilers have C++11 constexpr support.) r=cjones
--HG--
extra : rebase_source : b4bae9a0f85abf2feb828609b50e756916b99a6f
2011-10-10 22:50:08 -07:00
Jeff Walden
eb2cb918a4 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
77ebbde4ab Bug 639469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. r=cjones
--HG--
extra : rebase_source : 860a8271bf7e51cde358f2a4185c410de1fc2960
2011-10-10 22:50:08 -07:00
Jonathan Kew
bf22ca29e7 Bug 692752 - paint text-shadow after selection highlight background. r=roc 2011-10-08 17:27:14 +01:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Jonathan Kew
3f213d78b5 bug 686497 - avoid passing excessively long wavy-underline path to cairo for stroking. r=roc 2011-09-16 20:23:29 +01:00
Masayuki Nakano
d9869bfccf Bug 669028 part.13 layout should use mozilla::LookAndFeel rather than nsILookAndFeel r=roc 2011-09-09 11:27:13 +09:00
Ed Morley
a31b5adc78 Merge last green changeset of m-c to m-i 2011-08-26 10:26:46 +01:00
Boris Zbarsky
7d2d7a386f Bug 682051. Optimize textframe to handle horizontal resizes of large runs of text better. r=roc
This change does two things:

1) Makes sure that we don't clear textruns when removing continuations due to
an earlier consideration expanding to contain all their text.

2) Remove continuations in chunks to work around the fact that blocks are
really bad at handling single frame removals.
2011-08-25 23:29:24 -04:00
Alfred Kayser ext:(%2C%20Ms2ger%20%3Cms2ger%40gmail.com%3E)
944c74ce98 Bug 537223 - Cleanup gfxColor.h; r=jrmuizel 2011-08-25 10:46:01 +02:00
Mats Palmgren
6894179e71 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
L. David Baron
3bee9b4196 Remove quirks mode check that should have been removed when standards-mode and quirks-mode text-decorations were merged in bug 403524, changeset 83b2648ee442. (Bug 680505, patch 2) r=roc
This code is a little bit sketchy, but given that text-decoration
drawing is the same across modes we shouldn't have a quirks mode check
here (though there's a decent argument to be made that we shouldn't be
checking text decorations at all).
2011-08-20 21:35:56 -04:00
Matt Brubeck
4e7caa789f Merge mozilla-central and mozilla-inbound 2011-08-12 07:08:33 -07:00
Ms2ger
d377c55ed2 Bug 677101, part c - Reduce nsIDOMText.h inclusions; r=volkmar 2011-08-11 15:29:58 +02:00
Vitor Menezes
634b38b6b7 Bug 676538: Fix regression that caused text-decorations on inline *child* of block to draw at the offset for the block rather than the inline. r=dbaron
The FrameProperty representing baseline is set when a block defines
text-decorations and has vertically-aligned children, but we were
retrieving it whether the block or the vertically-aligned frame itself
defined the decorations.  As a result, we "undo" the frame offset to get
the baseline from the child in that case.
2011-08-10 12:44:17 -07:00
Mats Palmgren
66c48bce55 Bug 663375 - When text color is darkened, darken text-decoration color too. r=dbaron 2011-08-09 17:14:36 +02:00
Jeff Muizelaar
cb92f6ff06 Bug 660662. Eliminate NS_(ceil|floor). r=roc
These just called the system versions.
2011-05-30 15:08:55 -04:00
Vitor Menezes
cf291058cb Bug 403524: Remove the standards-mode text-decoration code and use the quirks-mode code in all modes. r=dbaron 2011-08-03 11:30:58 -07:00
Vitor Menezes
34ffdd3a27 Bug 403524: Draw correct colors for text-decorations on default-color shadows in quirks mode. r=dbaron
Make the quirks mode text-decoration + text-shadow code draw the
decorations for shadows that do not have a specified color using
the same color used for the un-shadowed decorations, which matches
standards mode behavior.  (The color of unspecified-color shadows
is explicitly undefined in the specification.)

This code will (in a later patch on this bug) be used for both
quirks and standards modes.
2011-08-03 11:30:58 -07:00
Vitor Menezes
1be3da1279 Bug 403524: Make quirks-mode text draw order comply with CSS 2.1
Quirks-mode code draws text, and then all decorations. We need to instead draw
underlines, then overlines, -then- text, then line-throughs, as per CSS 2.1.

This involves refactoring nsTextFrame::PaintTextDecorations and
nsTextFrame::DrawText by merging them together, and also updating some
of their callers.
2011-08-03 11:30:58 -07:00
Vitor Menezes
c3e1ce33e1 Fix apparent rounding issues with new text decoration code. (Bug 403524) r=dbaron
Rendering text decorations far away from the frame's baseline seems to
sometimes introduce rounding issues. This patch addresses that by
avoiding snapped-baseline weirdness and using a different argument to
nsTextFrame::PaintTextDecorations in some computations that didn't
really need to use the snapped baseline anyway.
2011-08-03 11:30:58 -07:00
Vitor Menezes
e28c55c2e9 Fix text-decoration positioning in quirks mode and set overflow areas to match. (Bug 403524) r=dbaron
Change the quirks mode text-decoration code (soon to be used for all
modes) to follow CSS 2.1's rules for positioning of decoration lines.
Decorations are now drawn at a constant vertical position established by
the element creating the decoration, and more than one of the same type
(underline, overline, line-through) of decoration are supported on the
same piece of text.

This means that text-decorations can now significantly overflow a text
frame, since the vertical-alignment of the element with text-decoration
may be substantially different from the vertical alignment of the text.
Set overflow areas for text frames with text decorations in
nsLineLayout::RelativePositionFrames since it must happen *after*
vertical alignment is done, and when relative positioning data are
consistent (nsIFrame::GetRelativeOffset matches the offset that has been
applied).
2011-08-03 11:30:58 -07:00
Ehsan Akhgari
096131f2a7 Merge the last green changeset on mozilla-inbound to mozilla-central 2011-07-13 11:40:03 -04:00
Ed Morley
78387ed743 Bug 447838 - Fix build warnings in nsTextFrameThebes.cpp; r=roc 2011-07-12 12:06:34 -04:00