Commit Graph

30 Commits

Author SHA1 Message Date
Benjamin Smedberg
2b55dddfca Bug 734847 part 2 - treewide changes resulting from the default-infallibility of hashtables; either remove useless result checks, or use the fallible version of APIs, depending on context, r=jlebar 2012-05-18 13:30:49 -04:00
Robert O'Callahan
fb6a78d67b 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
a567028716 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
8c09c97e7b 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
c6e45feee7 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
2a6b685d55 Bug 713610 - For a marker that is inactive we should guess false. r=roc 2011-12-29 14:21:00 +01:00
Mats Palmgren
904bb2a46c 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
71aa3a32f0 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
9220fe51f3 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
9c95c3d00a 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
7879705425 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
97629a87c3 Remove the unused context parameter to MeasureCharClippedText. (Bug 627842, patch 10) r=roc 2011-11-23 18:48:23 -08:00
Robert O'Callahan
5371090a4f 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
7d613942b0 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 2011-10-10 22:50:08 -07:00
Jeff Walden
c5e5f873d1 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
946f2ae0e3 Bug 639469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. r=cjones 2011-10-10 22:50:08 -07:00
Mats Palmgren
a747288fcc 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
c655d8daff 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
0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Mats Palmgren
4e2a044a66 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
b061a3b392 Bug 677582 - Implement CSS3 text-overflow: <left> <right> in layout. r=roc 2011-08-20 22:41:39 +02:00
L. David Baron
d6fd817fc7 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
589e36e849 Bug 663375 - When text color is darkened, darken text-decoration color too. r=dbaron 2011-08-09 17:14:36 +02:00
Mats Palmgren
48ac4326b1 Bug 671796 - "ASSERTION: unexpected block frame" with text-overflow, overflow, mathml. r=roc 2011-07-19 14:20:32 +02:00
Mats Palmgren
4b7065b7b1 Bug 670564 - "ASSERTION: illegal left edge" in nsDisplayText::Paint. r=roc 2011-07-11 22:18:26 +02:00
Mats Palmgren
6407f856db 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
f7b797bf54 Bug 667010 - "ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>. r=roc 2011-07-04 07:47:59 +02:00
Michael Ventnor
d50e0e7799 Implement text-shadow for the text-overflow marker text (ellipsis) r=roc 2011-07-01 16:43:11 +10:00
Mats Palmgren
45a9358dda 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
c12d6a33ea Bug 312156 - Implement CSS3 text-overflow. r=roc 2011-06-22 20:11:48 +02:00