Commit Graph

29 Commits

Author SHA1 Message Date
Robert O'Callahan
7c34e38876 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
Matt Woodrow
63d5bd1d56 Bug 731858 - Add index numbers to nsDisplayTextOverflow so that they are unique for a given frame. r=mats 2012-03-01 21:26:09 +13:00
Mats Palmgren
c496441d30 Bug 672944 - Setup overflow areas for the scrolled block frame in a XUL scroll frame for the benefit of text-overflow; Make the text-overflow code grok the extra wrapper frame in this case. r=roc 2012-01-28 04:35:59 +01:00
L. David Baron
94eb7fc6c5 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
Mats Palmgren
01fbcef4b5 Bug 713610 - For a marker that is inactive we should guess false. r=roc 2011-12-29 14:21:00 +01:00
Mats Palmgren
0d801fb5ed Bug 690187 - Clip or suppress a marker if it makes the line empty. r=roc 2011-12-19 15:48:31 +01:00
Mats Palmgren
084e39e944 Bug 690187 - Make the edge analysis report back if text or atomic inline-level content is visible between the marker edges. r=roc 2011-12-19 15:48:31 +01:00
Mats Palmgren
a330ccd83d Bug 690187 - Use a bit on each marker to track if it's active (only text-overflow:clip means inactive for now); check the flag rather setting the clip edge at infinity to disable ellipsing on a side. r=roc 2011-12-19 15:48:30 +01:00
L. David Baron
0e6b37ad63 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
00c3df434c Pass nsFontMetrics to the GetEllipsis function rather than computing them again. (Bug 627842, patch 14) r=matspal 2011-11-23 18:48:23 -08:00
L. David Baron
af0ddba78e Remove the unused context parameter to MeasureCharClippedText. (Bug 627842, patch 10) r=roc 2011-11-23 18:48:23 -08:00
Robert O'Callahan
2db71e8621 Bug 681867. text-overflow only needs to affect the scrolling behavior of the block container with text-overflow. r=mats 2011-10-21 14:41:36 +13:00
Jeff Walden
b5e57820bf 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
d0532c3e95 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
0f30b277bf 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
Mats Palmgren
c80a49e8ed Bug 684266 - Suppress ellipsing when scrolling further isn't possible in that direction. r=roc 2011-10-12 18:20:46 +02:00
Mats Palmgren
9fc0be400e Bug 684266 - Do ellipsing on the end-edge only when a single value was specified for text-overflow. r=bzbarsky r=roc 2011-10-12 18:20:46 +02:00
Michael Wu
d2b70213ac 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
Mats Palmgren
f1c56f2e22 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
Mats Palmgren
d0304072ba Bug 677582 - Implement CSS3 text-overflow: <left> <right> in layout. r=roc 2011-08-20 22:41:39 +02:00
L. David Baron
84b8b6bf64 Replace all uses of nsLayoutUtils::SetFontFromStyle with GetFontMetricsForFrame or GetFontMetricsForStyleContext and remove SetFontFromStyle. (Bug 678671, patch 2) r=roc
There was nothing wrong with SetFontFromStyle, except that it's just one
more API to think about (and one more API to audit and modify for font
inflation work to happen in bug 627842).
2011-08-14 10:08:04 -07:00
Mats Palmgren
f70d28ee47 Bug 663375 - When text color is darkened, darken text-decoration color too. r=dbaron 2011-08-09 17:14:36 +02:00
Mats Palmgren
b26dd9360f Bug 671796 - "ASSERTION: unexpected block frame" with text-overflow, overflow, mathml. r=roc 2011-07-19 14:20:32 +02:00
Mats Palmgren
617c56fcae Bug 670564 - "ASSERTION: illegal left edge" in nsDisplayText::Paint. r=roc 2011-07-11 22:18:26 +02:00
Mats Palmgren
9bb2d0e9ec Bug 668919 - The ellipsis with text-overflow: ellipsis is sometimes one pixel too low. r=roc 2011-07-04 07:47:59 +02:00
Mats Palmgren
219b9d4294 Bug 667010 - "ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>. r=roc 2011-07-04 07:47:59 +02:00
Michael Ventnor
62ab64069b Implement text-shadow for the text-overflow marker text (ellipsis) r=roc 2011-07-01 16:43:11 +10:00
Mats Palmgren
02e05ea2e7 Bug 666751 - Add a null-check in case the item's frame is not a descendent of the text-overflow block. r=roc 2011-06-24 21:12:52 +02:00
Mats Palmgren
e757474795 Bug 312156 - Implement CSS3 text-overflow. r=roc 2011-06-22 20:11:48 +02:00