Commit Graph

481 Commits

Author SHA1 Message Date
L. David Baron
464614b05f Add a font inflation data structure per block formatting context. (Bug 706193, patch 2) r=roc
This structure is per block formatting context because we have to make a
single inflation decision for things like consecutive runs of paragraphs
of text.  Inflating some paragraphs and not others (within the same
sequence of adjacent paragraphs) based on the amount of text in each one
would be disastrous.  Otherwise it's ideal for the units to be as small
as possible as long as they merge such sequences; therefore this uses a
definition corresponding to CSS's idea of elements that establish new
block formatting contexts.
2012-04-16 15:32:12 -07: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
Mats Palmgren
a3cd816ea1 Bug 736915 - Print Selection prints a blank page when the selection is inside a table. r=bz
When rendering just the current Selection (Print - Selection) then don't create display items
for table-related frames unless the frame itself is part of the selection, and always ask
descendant frames to build display lists [in case they are selected].
2012-04-03 02:30:45 +02:00
Nathan Froyd
20f5ce545a Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Mats Palmgren
aedc830d14 Bug 720142 - Use nsIntRect for table damage. r=bernd 2012-01-22 23:48:34 +01:00
Benjamin Stover
a38eb5067f Bug 524925 - Recompute overflow without reflowing for transforms. part=1/6 r=dbaron
Add an extra change hint, UpdateOverflow, that can be used to specify that
a frame's overflow areas may have changed and that they need to be recalculated.
When a transform on a frame changes, instead of marking it for reflow, set this
hint instead.

There is an added virtual function on nsIFrame, UpdateOverflow, which is called
recursively on a frame when the corresponding hint is set, to allow it to
update its overflow areas.
2011-06-15 14:03:49 -07:00
Mats Palmgren
e0018d2b82 Bug 716408 - Make nsTableFrame::GetTableFrame abort if the given frame isn't a table frame descendant, thus guaranteeing a non-null result. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
8fe75b1c1b Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Mats Palmgren
8f89cccd9c Bug 619273 - Move the selection state bit from frames to content nodes. r=smaug 2011-12-20 10:15:41 +01:00
Bernd
41e488d602 bug 707622 - rows without originating cells are suppressed at the table bottom r=mats 2011-12-07 20:38:25 +01:00
Bernd
05da1a27c4 bug 460637 - the group cellmaps need to set the damageArea relative to the entire table, patch by Mats Palmgren, Randell Jesup and Bernd, r=mats, bernd 2011-10-27 09:58:44 -04:00
Ehsan Akhgari
478ad1a412 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
Ehsan Akhgari
de3e3fd8ee Bug 10209 - Part 6: Implement the CSS "containing block" concept correctly as a binary relation, as opposed to a unary relation; r=bzbarsky 2011-05-12 00:04:30 -04: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
Masayuki Nakano
249d3a0682 Bug 669028 part.13 layout should use mozilla::LookAndFeel rather than nsILookAndFeel r=roc 2011-09-09 11:27:13 +09: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
Craig Topper
2d3a050e8b Bug 658143 - Part 1: Changes nsCOMPtr<nsFrameSelection> to nsRefPtr. r=roc 2011-05-18 20:10:49 -07:00
Robert O'Callahan
414edefebf Bug 641426. Part 4.2: Rename BaseMargin::side to BaseMargin::Side. r=cjones 2011-04-19 15:07:22 +12:00
Jan Küchler
8774547613 Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>. 2011-04-07 18:04:40 -07:00
Jan Küchler
ed48629385 Bug 266236 part 1: Preliminary API cleanup on nsIRenderingContext. 2011-04-07 18:04:39 -07:00
Alexander Surkov
5d41370232 Bug 628922 - layout should use cached nsIAccessibilityService, r=davidb, sr=roc, a=roc 2011-01-28 12:38:14 +08:00
57a9bccb02 Bug 615265: unused variable textStyle in nsTableCellFrame::VerticallyAlignChild. r=bz a=bz 2010-11-30 21:27:29 -08:00
L. David Baron
913a31cc5c Fix miscellaneous reflow methods to use new overflow area APIs. (Bug 542595, patch 19) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:46 -07:00
L. David Baron
e840f7fe82 Make parameters to nsTableFrame::InvalidateFrame, nsTableFrame::PlaceChild, and nsTableRowGroupFrame::PlaceChild be the visual overflow rect. (Bug 542595, patch 17) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:46 -07:00
L. David Baron
f091b2e482 Fix the way table cells consider overflowing collapsed borders for split overflow areas. (Bug 542595, patch 16) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:46 -07:00
Bobby Holley
d01a81875a Bug 592493 - Register border-images with the document image tracker.r=dbaron 2010-09-07 17:30:40 -07:00
L. David Baron
617212bb46 Add border-radius-related helper functions to nsIFrame. (Bug 459144, patch 6) r=roc a2.0=blocking:beta6+ 2010-09-07 15:20:35 -07:00
L. David Baron
bfdb785c9a Consolidate table-cell vertical align code. (Bug 585715) r=bzbarsky a2.0=blocking+ 2010-08-31 12:05:12 -04:00
Robert O'Callahan
3f1563fde4 Bug 579323. Part 1.8: Rename InvalidateOverflowRect to InvalidateFrameSubtree. r=tnikkel 2010-08-31 12:49:12 +12:00
Robert O'Callahan
b2f6635dcb Bug 584282. Use nsDisplayItem::ToReferenceFrame() instead of calling nsDisplayListBuilder::ToReferenceFrame, wherever possible. r=tnikkel,a=dbaron 2010-08-13 22:01:58 +12:00
Robert O'Callahan
6994544c46 Bug 584282. Add nsDisplayItem::mToReferenceFrame and initialize it in the constructor. r=tnikkel,a=dbaron 2010-08-13 22:01:13 +12:00
Michael Ventnor
c40f8edbb0 Bug 564991. Part 3: Create unique nsDisplayItem types for every single display item. r=tnikkel 2010-07-16 09:07:49 +12:00
Alexander Surkov
0a6b10381a Bug 573706 - make frame based accessible creation more pellucid, r=davidb, sr=roc 2010-06-28 21:02:03 +09:00
timeless
d8effcff7f Bug 334571 Coverity 702, NS_SIDES array limit check - replace NS_FOR_CSS_SIDES defines with enum. r=zwol,mats 2010-04-27 18:15:02 +02:00
timeless
21cb9c6c41 Bug 334571 strip trailing whitespace. r=zwol 2010-04-27 18:15:01 +02:00
Felipe Gomes
6f9c5ea1d9 Bug 489127 - nodesFromRect required for better usability on mobile devices (part 1+2) [r=roc] 2010-04-07 20:31:26 -04:00
L. David Baron
21c8a7d37e Make PaintBackgroundWithSC and related methods operate on nsStyleContext* rather than const nsStyleBackground*. (Bug 147777) r=zweinberg 2010-04-02 18:58:26 -07:00
Robert O'Callahan
2b9c2c8e4f Bug 530686. Only create an nsDisplayTableBorderBackground when it's going to have something to paint, since having one can disable some scrolling optimizations. r=dbaron 2009-12-12 10:50:30 -08:00
Robert O'Callahan
f87971b45d Bug 531461. Avoid creating an nsDisplayTableBorderBackground if every part of the table is hidden. r=dbaron 2009-12-12 10:50:25 -08:00
Boris Zbarsky
75ebdc52ee Bug 525295. Rename nsStyleContext::GetPseudoType to GetPseudo. r=dbaron 2009-10-29 17:17:56 -04:00
Robert O'Callahan
9d5b5ae49a Bug 513082. Instead of passing aDirtyRect to nsDisplayItem::Paint, have nsDisplayList::OptimizeVisibility (renamed to ComputeVisibility) compute the intersection of the visible region with the bounds of each display item and store the result in the item's mVisibleRect. This lets us do less work to paint display items which have a small intersection with the visible region but a large intersection with the bounding-box of the visible region. r=dbaron 2009-09-07 12:35:14 +12:00
Mats Palmgren
f82eedba5a Replace PR_MIN/PR_MAX with NS_MIN/NS_MAX. b=512106 r=roc 2009-09-16 17:01:36 +02:00
Bobby Holley
684e46c218 Bug 435296 - Sync decode handling for decode-on-draw. r=roc 2009-09-12 16:44:18 -06:00
Zack Weinberg
b6fe8205dd Bug 497495 part 3: Add methods to every nsFrame subclass that expose the as-allocated identity of every frame object. Also some cleanups to the QueryFrame implementation. r=dbaron sr=roc 2009-09-12 17:49:24 +01:00
Boris Zbarsky
23db8f4fa3 Bug 281387. Make nsIFrame::Append/InsertFrames use nsFrameList. r=bernd,roc, sr=dbaron 2009-07-30 13:23:32 -04:00
Robert O'Callahan
46dd2efbdd Bug 371839. Remove ParentDisablesSelection, which is effectively unused. r=bzbarsky 2009-07-27 10:06:30 +12:00
Robert O'Callahan
ea697b8b02 Bug 371839. Remove useless SetSelected implementations. r=bzbarsky 2009-07-27 10:03:16 +12:00
Daniel Holbert
7430cd1210 Bug 479166: rename variable "computedPaginatedHeight" to "computedUnpaginatedHeight" and reduce its scope, and also fix some build warnings, all in nsTableCellFrame. r=bernd 2009-07-21 13:05:49 -07:00
Robert O'Callahan
0d073a71fe Bug 494667. Don't apply optimization to shrink drawn background area to exclude solid borders, if we're not going to draw those borders (e.g. in tables with collapsing borders). r+sr=dbaron,a=beltzner 2009-05-28 17:01:42 +12:00
Arpad Borsos
1f292f1511 Bug 481932 - use do_QueryFrame instead of IS_TABLE_CELL + cast; r+sr=roc 2009-03-24 23:10:06 +01:00