gecko-dev/layout/forms
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
..
crashtests
test Bug 709448 - File input click() handling should perhaps allow openControlled popups; r=bz 2011-12-21 18:03:52 +01:00
Makefile.in Bug 702388 - Convert Makefiles to use |TEST_DIRS += foo| r=khuey 2012-02-04 17:32:24 +00:00
nsButtonFrameRenderer.cpp 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 2012-04-10 23:24:18 +12:00
nsButtonFrameRenderer.h
nsComboboxControlFrame.cpp Bug 728906 - Make nsIFrame::GetChildList return const nsFrameList&. r=bz 2012-03-08 02:57:37 +01:00
nsComboboxControlFrame.h Bug 728906 - Make nsIFrame::GetChildList return const nsFrameList&. r=bz 2012-03-08 02:57:37 +01:00
nsFieldSetFrame.cpp Bug 732610 - Make nsIFrame::ComputeSize take a bitfield 'aFlags' instead of a bool 'aShrinkWrap'. r=dbaron 2012-03-16 11:01:05 -07:00
nsFileControlFrame.cpp Bug 598244 - nsFileControlFrame should not parse the accept attribute but nsHTMLInputElement should do that; r=mounir 2012-03-12 11:36:02 +01:00
nsFileControlFrame.h Bug 598244 - nsFileControlFrame should not parse the accept attribute but nsHTMLInputElement should do that; r=mounir 2012-03-12 11:36:02 +01:00
nsFormControlFrame.cpp
nsFormControlFrame.h
nsGfxButtonControlFrame.cpp
nsGfxButtonControlFrame.h
nsGfxCheckboxControlFrame.cpp Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
nsGfxCheckboxControlFrame.h
nsGfxRadioControlFrame.cpp
nsGfxRadioControlFrame.h
nsHTMLButtonControlFrame.cpp Bug 691267 - Remove nsHTMLButtonAccessible duplication, r=surkov 2012-02-22 20:33:37 +09:00
nsHTMLButtonControlFrame.h
nsICapturePicker.idl
nsIComboboxControlFrame.h
nsIFormControlFrame.h
nsIListControlFrame.h
nsImageControlFrame.cpp Bug 691267 - Remove nsHTMLButtonAccessible duplication, r=surkov 2012-02-22 20:33:37 +09:00
nsISelectControlFrame.h
nsITextControlFrame.h
nsLegendFrame.cpp
nsLegendFrame.h
nsListControlFrame.cpp Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
nsListControlFrame.h
nsProgressFrame.cpp
nsProgressFrame.h
nsSelectsAreaFrame.cpp 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 2012-04-10 23:24:18 +12:00
nsSelectsAreaFrame.h
nsTextControlFrame.cpp Bug 668606 input event should be fired on all editors r=ehsan+smaug, sr=smaug 2012-03-27 10:36:44 +09:00
nsTextControlFrame.h Bug 668606 input event should be fired on all editors r=ehsan+smaug, sr=smaug 2012-03-27 10:36:44 +09:00