Commit Graph

673 Commits

Author SHA1 Message Date
Kartikaya Gupta
f7078e6ca5 Bug 918288 - Add code to TabChild to dispatch the SetTargetAPZC notification. r=roc,botond 2014-11-21 21:36:25 -05:00
David Anderson
9b52de759d Cache the current animated geometry root in nsDisplayListBuilder. (bug 1101260 part 1, r=roc) 2014-11-20 16:58:18 -08:00
Mats Palmgren
249ccee969 Bug 907396 - Make RestyleManager::RestyleElement and nsCSSFrameConstructor::MaybeRecreateFramesForElement deal with display:contents elements. r=bzbarsky 2014-11-20 18:24:10 +00:00
Daniel Holbert
100c4f77be Bug 624647 part 1: Add utility method nsLayoutUtils::ComputeObjectDestRect() to handle object-fit/object-position. r=seth 2014-11-14 16:45:23 -08:00
Benoit Girard
de95949f46 Bug 1094442 - Part 1: Refactor how tile w/h is queried r=kats 2014-11-12 17:54:29 -05:00
Botond Ballo
4eddb9ef90 Bug 1076163 - Basic APZ support for css-driven resolution. r=kats,tn
This makes APZ behave nicely with most uses of a css transform:scale.

Summary of changes:
  - FrameMetrics::mCumulativeResolution now includes the css-driven resolution
    in addition to the pres-shell resolution.
  - Displayports are now stored in Screen pixels rather than Layer pixels.
    This is what we want anyways (as we'd like the displayport size to remain
    constant as a fraction of the screen size), but it was necessary to make
    this change as part of this patch because continuing to store them in
    Layer pixels in the presence of a css-driven resolution would have
    required a bunch of infrastructure to implement correctly.

Remaining work:
  - Layout painting a scrollable layer at a resolution different from the
    scale induced by the css transform causes problems. These will go away
    with bug 1076192.
  - Different resolutions on the x and y axes are not supported. This is
    tracked by bug 1039967.
2014-10-24 15:49:38 -04:00
Carsten "Tomcat" Book
5ab7b878a7 Backed out changeset fbb9dc943109 (bug 1076163) for Android 4.0 Crashes on a CLOSED TREE 2014-11-13 11:47:57 +01:00
Jonathan Kew
e7e5f2df11 Bug 1093553 - Improve handling of line-height metrics, block ascent, etc., in vertical writing mode. r=smontagu 2014-11-13 08:58:06 +00:00
Botond Ballo
9b6d326e37 Bug 1076163 - Basic APZ support for css-driven resolution. r=kats,tn
This makes APZ behave nicely with most uses of a css transform:scale.

Summary of changes:
  - FrameMetrics::mCumulativeResolution now includes the css-driven resolution
    in addition to the pres-shell resolution.
  - Displayports are now stored in Screen pixels rather than Layer pixels.
    This is what we want anyways (as we'd like the displayport size to remain
    constant as a fraction of the screen size), but it was necessary to make
    this change as part of this patch because continuing to store them in
    Layer pixels in the presence of a css-driven resolution would have
    required a bunch of infrastructure to implement correctly.

Remaining work:
  - Layout painting a scrollable layer at a resolution different from the
    scale induced by the css transform causes problems. These will go away
    with bug 1076192.
  - Different resolutions on the x and y axes are not supported. This is
    tracked by bug 1039967.
2014-10-24 15:49:38 -04:00
Morris Tseng
5998dde150 Bug 1094056 - Use nsCaret::GetGeometryForFrame to determine position of selection carets. r=roc 2014-11-11 22:54:00 +01:00
Kartikaya Gupta
34df777ecb Bug 1078029 - Add code to reposition input event coordinates into the target frame. r=roc
The PositionedEventTargeting code allows input events to be dispatched to a
target not directly under the input event point. However, the coordinates of the
input event can then end up outside the bounding rect of the event target. This
state is generally unexpected by web content and may cause compatibility issues.
Fennec's front-end code used to deal with this by repositioning the input event
coordinates to be inside the bounding rect; now that Fennec is using the shared
C++ code we need to have that code here. This behaviour is guarded by a pref and
disabled by default (but enabled on Fennec).
2014-11-04 09:52:16 -05:00
Jonathan Watt
eceb3099ee Bug 1091794 - Replace gfxCornerSizes with Moz2D's RectCornerRadii. r=mattwoodrow 2014-11-01 10:45:10 +00:00
Jonathan Watt
2ae60576c4 Bug 1091323 - Convert the nsLayoutUtils helpers that paint images and take an nsRenderingContext to take a gfxContext instead. r=seth 2014-11-01 10:45:09 +00:00
Jonathan Watt
38d8f2dd23 Bug 1088781 - Rename nsLayoutUtils::GetStringWidth to nsLayoutUtils::AppUnitWidthOfStringBidi. r=dholbert 2014-10-26 17:57:49 +00:00
Botond Ballo
44b608d976 Bug 1085569 - When calculating the composition bounds based on the frame size, use the cumulative resolution rather than the parent resolution everywhere. r=tn 2014-10-20 15:53:29 -04:00
Jonathan Watt
3c69ad6faa Bug 1088625, part 2 - Pass nsFontMetrics objects through to code that needs it instead of storing it on the nsRenderingContext. r=mstange 2014-10-24 16:28:14 +01:00
Jonathan Watt
abbc6ac8ac Bug 1088599 - Move nsRenderingContext::GetBoundingMetrics to nsLayoutUtils. r=mstange 2014-10-24 16:28:14 +01:00
Jonathan Watt
10b10a6bef Bug 1088550 - Move nsRenderingContext's remaining GetWidth methods to nsLayoutUtils. r=mstange 2014-10-24 16:28:13 +01:00
Jonathan Watt
3d7cc0843f Bug 1088071, part 2 - Move the nsRenderingContext::DrawString code to nsLayoutUtils::DrawUniDirString. r=jfkthame 2014-10-24 11:00:23 +01:00
Jonathan Watt
16e135bc53 Bug 1088071, part 1 - Wrap the callers of the final nsRenderingContext::DrawString method up in a new nsLayoutUtils::DrawUniDirString method. r=jfkthame 2014-10-24 11:00:23 +01:00
Matt Woodrow
8d847a7a2a Bug 1078337 - Correctly respect the source rect in DrawSingleImage. r=seth 2014-10-23 11:41:14 +13:00
Jonathan Watt
3b52cf43ad Bug 1086708 - Rename the snapping variant of NSRectToRect to NSRectToSnappedRect. r=mattwoodrow 2014-10-22 12:29:06 +01:00
Benoit Girard
8ad6049025 Bug 961871 - Part 2: Refactor will-change scroll, pass through a nsDisplayListBuilder. r=mattwoodrow 2014-10-21 21:54:06 -04:00
Jonathan Watt
5d42f29aa8 Bug 1085159 - Port the code that uses nsRenderingContext::DrawLine() to Moz2D. r=mattwoodrow 2014-10-20 10:55:48 +01:00
Jonathan Watt
6a1953e045 Bug 1083597, part 2 - Add a variant of NSRectToRect that snaps to device pixels, and have nsTableCellFrame::DecorateForSelection use it to restore its snapping behavior. 2014-10-19 11:47:22 +01:00
Jonathan Watt
a85c726c1e Bug 1083557 - Port the code that uses nsRenderingContext::FillPolygon() to Moz2D. r=mattwoodrow 2014-10-17 15:06:34 +01:00
Jonathan Watt
6ec27a149e Bug 1083761 - Use Color::FromABGR in more places that to the conversion by hand and remove nsLayoutUtils::NSColorToColor(). r=mstange 2014-10-17 12:53:16 +01:00
Jonathan Watt
218ac8e8b8 Bug 1083215, part 2 - Convert drawing of HTML image map area focus to Moz2D. r=mattwoodrow 2014-10-16 10:51:14 +01:00
Michael Wu
ed2099aaf4 Bug 1083393 - Remove unused thebes things in nsLayoutUtils, r=mattwoodrow 2014-10-15 17:13:14 -04:00
Brian Birtles
d1acd4f706 Bug 1046055 part 4 - Add HasCurrentAnimationsForProperty to nsLayoutUtils; r=dbaron
This patch adds a method to nsLayoutUtils, alongside the existing
HasCurrentAnimations, that returns true if there exists an unfinished animation
on the element for the specified property.
2014-10-02 15:14:14 +09:00
Brian Birtles
7852c7f1b9 Bug 1046055 part 1 - Remove nsPresContext parameter from nsLayoutUtils::HasCurrentAnimations; r=dbaron 2014-10-02 15:14:13 +09:00
Dirk Schulze
c3c99dcc17 Bug 1072894 - Implement polygon() parsing for clip-path. r=heycam 2014-09-28 01:56:00 +02:00
Markus Stange
a15e939a69 Bug 1073103 - Rename ThebesLayer to PaintedLayer. r=roc 2014-09-26 13:06:08 -04:00
Kartikaya Gupta
478070128a Bug 1071367 - Fix the composition bounds for the root content document on OS X. r=tn
According to roc the content viewer position doesn't mean much; only the size is
set to anything meaningful. Therefore using the position from the content viewer
bounds is not a good idea, and we should use the position from the frame bounds
instead. This patch also changes GetContentViewerBounds to GetContentViewerSize
so that it's harder to accidentally use the position in other places.
2014-09-23 12:17:36 -04:00
Ting-Yu Lin
f5f9b2364a Bug 1065244 - Part 2 - Refactor event point on frame logic for SelectionCarets. f=mtseng, r=roc 2014-09-15 02:57:00 +02:00
Ting-Yu Lin
c10012f9f8 Bug 1065244 - Part 1 - Add GetRectRelativeToFrame to nsLayoutUtils. f=mtseng, r=roc 2014-09-15 17:07:00 +02:00
Daniel Holbert
d4b86d121d (no bug) Some comment-only cleanup in nsLayoutUtils.h. (no review, comment-only)
DONTBUILD

In particular:
 - Rewrapped a few lines to 80 characters.
 - Fixed a few typos.
 - Added a terminal period character at the end of @param/@return lines, in cases where the rest of the function's documentation follows that convention.
2014-09-09 16:12:13 -07:00
Jonathan Watt
cab702dd37 Bug 932771, part 2 - Add an inline nsLayoutUtils::PointToGfxPoint helper method. r=longsonr 2014-08-19 22:17:49 +01:00
Jonathan Kew
24f8dcfb05 bug 1046950 pt 4 - convert ComputeSizeWithIntrinsicDimensions to logical-coord parameters. r=smontagu 2014-08-24 15:34:57 +01:00
Seth Fowler
c25a32c077 Bug 1043560 - Refactor the imgIContainer::Draw API. r=tn,dholbert,jwatt,mwu,mattwoodrow,roc sr=jrmuizel 2014-08-22 13:12:38 -07:00
David Zbarsky
a219682afb Bug 952977: Switch some uses of gfx3DMatrix in nsLayoutUtils to Matrix4x4 r=nical 2014-08-22 09:40:02 -04:00
Matt Woodrow
3e4fdd6a6f Bug 1056427 - Stop PRenderFrame from managing PLayerTransaction since it hasn't worked since the layers refactoring. r=roc 2014-08-22 12:16:44 +12:00
Susanna Bowen
3c4a808a0e Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron
To account for spacing between bases or text boxes during reflow, the line
layout which manages the bases updates its inline direction coordinate based on
the preferred inline size for the corresponding text boxes. Next, the base is
reflowed at the correct inline coordinate. Each paired text box is then also
reflowed at the proper inline position determined by (1) the current position of
its corresponding base and (2) its own preferred width.

In computing intrinsic widths, accounting for spacing is less complicated. The
minimum intrinsic width is the width of the widest ruby column, and the
preferred intrinsic width is the sum of all the ruby column widths. Each ruby
column width is the maximum width of its base box and text boxes. These
individual widths are determined using GetPrefISize on the base and text boxes.

Ruby base container frames store a list of pointers to the ruby text container
frames in the segment they denote. This list of pointers is created in the ruby
frame reflow method before calling the reflow method for the ruby base
container. The list exists and is used only during reflow of the main ruby frame
and is cleared before returning from reflow.
2014-08-15 10:34:20 -07:00
Ehsan Akhgari
17f80c37f2 Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
Matt Woodrow
38a3e36018 Bug 1045864 - Disable layerized background-attachment:fixed when we're using a software compositor. r=roc 2014-08-05 15:25:00 +12:00
Kartikaya Gupta
094f2ddc1c Bug 1043644 - Use the content viewer bounds instead of the view bounds if available. r=tn 2014-07-29 14:50:48 -04:00
Matt Woodrow
fff3e88ace Bug 1039020 - Layerize background-attachment:fixed for all elements, not just the root one. r=roc 2014-07-25 20:37:50 +12:00
Jonathan Kew
f6c74bf220 bug 1031241 pt 4 - Rename the {MIN,PREF}_WIDTH constants used to identify the type of intrinsic inline-size. r=smontagu 2014-07-24 18:03:26 +01:00
Jonathan Kew
fe8090d7de bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
Jonathan Kew
711a2298a4 bug 1031241 pt 2 - More renaming, e.g. where {Min,Pref}Width occurs within longer type and function names. r=smontagu 2014-07-24 18:03:25 +01:00