[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-34-g43a6bb2
Gustavo Noronha Silva
gustavo.noronha at collabora.co.uk
Wed Oct 7 06:26:34 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit f6724e1e7fc42a9b38dfafaeee21b0926fb4ce00
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Sep 30 21:15:03 2009 +0000
REGRESSION(r47440): drop down menus at americanexpress.com disappear on mouse out
https://bugs.webkit.org/show_bug.cgi?id=29209
Reviewed by Sam Weinig.
WebCore:
Test: fast/inline/relative-positioned-overflow.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeVerticalOverflow): Add self-painting
inlines to overflow to ensure that they are included in hit-testing.
LayoutTests:
* fast/inline/relative-positioned-overflow-expected.txt: Added.
* fast/inline/relative-positioned-overflow.html: Added.
* platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/editing/selection/doubleclick-whitespace-img-crash-expected.txt b/LayoutTests/fast/inline/relative-positioned-overflow-expected.txt
similarity index 100%
copy from LayoutTests/editing/selection/doubleclick-whitespace-img-crash-expected.txt
copy to LayoutTests/fast/inline/relative-positioned-overflow-expected.txt
diff --git a/LayoutTests/fast/inline/relative-positioned-overflow.html b/LayoutTests/fast/inline/relative-positioned-overflow.html
new file mode 100644
index 0000000..d79d384
--- /dev/null
+++ b/LayoutTests/fast/inline/relative-positioned-overflow.html
@@ -0,0 +1,15 @@
+<span id="target" style="padding-bottom: 100px; background-color: red; padding-left: 100px; position: relative;"></span>
+<script>
+ document.getElementById("target").addEventListener("click", function(event) {
+ event.target.style.backgroundColor = "green";
+ document.body.appendChild(document.createTextNode("PASS"));
+ });
+
+ document.body.offsetTop;
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ eventSender.mouseMoveTo(50, 50);
+ eventSender.mouseDown();
+ eventSender.mouseUp();
+ }
+</script>
diff --git a/LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt b/LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt
index 49339e1..ceb428e 100644
--- a/LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt
+++ b/LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt
@@ -1,6 +1,6 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x296
+layer at (0,0) size 800x308
RenderBlock {HTML} at (0,0) size 800x296
RenderBody {BODY} at (8,16) size 784x272
RenderBlock {P} at (0,0) size 784x18
diff --git a/WebCore/rendering/InlineFlowBox.cpp b/WebCore/rendering/InlineFlowBox.cpp
index 599129b..143d3d8 100644
--- a/WebCore/rendering/InlineFlowBox.cpp
+++ b/WebCore/rendering/InlineFlowBox.cpp
@@ -578,28 +578,23 @@ void InlineFlowBox::computeVerticalOverflow(int lineTop, int lineBottom, bool st
topVisualOverflow = min(curr->y() + childOverflowTop, topVisualOverflow);
bottomVisualOverflow = max(curr->y() + text->height() + childOverflowBottom, bottomVisualOverflow);
- } else {
- // Only include overflow from inline flows and replaced inlines if they do not paint themselves.
- bool childIsSelfPainting = curr->boxModelObject()->hasSelfPaintingLayer();
- if (curr->renderer()->isRenderInline()) {
- InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
- flow->computeVerticalOverflow(lineTop, lineBottom, strictMode);
- if (!childIsSelfPainting) {
- topLayoutOverflow = min(topLayoutOverflow, flow->topLayoutOverflow());
- bottomLayoutOverflow = max(bottomLayoutOverflow, flow->bottomLayoutOverflow());
- topVisualOverflow = min(topVisualOverflow, flow->topVisualOverflow());
- bottomVisualOverflow = max(bottomVisualOverflow, flow->bottomVisualOverflow());
- }
- } else if (!childIsSelfPainting){
- RenderBox* box = toRenderBox(curr->renderer());
- int boxY = curr->y();
- int childTopOverflow = box->hasOverflowClip() ? 0 : box->topLayoutOverflow();
- int childBottomOverflow = box->hasOverflowClip() ? curr->height() : box->bottomLayoutOverflow();
- topLayoutOverflow = min(boxY + childTopOverflow, topLayoutOverflow);
- bottomLayoutOverflow = max(boxY + childBottomOverflow, bottomLayoutOverflow);
- topVisualOverflow = min(boxY + box->topVisualOverflow(), topVisualOverflow);
- bottomVisualOverflow = max(boxY + box->bottomVisualOverflow(), bottomVisualOverflow);
- }
+ } else if (curr->renderer()->isRenderInline()) {
+ InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
+ flow->computeVerticalOverflow(lineTop, lineBottom, strictMode);
+ topLayoutOverflow = min(topLayoutOverflow, flow->topLayoutOverflow());
+ bottomLayoutOverflow = max(bottomLayoutOverflow, flow->bottomLayoutOverflow());
+ topVisualOverflow = min(topVisualOverflow, flow->topVisualOverflow());
+ bottomVisualOverflow = max(bottomVisualOverflow, flow->bottomVisualOverflow());
+ } else if (!curr->boxModelObject()->hasSelfPaintingLayer()){
+ // Only include overflow from replaced inlines if they do not paint themselves.
+ RenderBox* box = toRenderBox(curr->renderer());
+ int boxY = curr->y();
+ int childTopOverflow = box->hasOverflowClip() ? 0 : box->topLayoutOverflow();
+ int childBottomOverflow = box->hasOverflowClip() ? curr->height() : box->bottomLayoutOverflow();
+ topLayoutOverflow = min(boxY + childTopOverflow, topLayoutOverflow);
+ bottomLayoutOverflow = max(boxY + childBottomOverflow, bottomLayoutOverflow);
+ topVisualOverflow = min(boxY + box->topVisualOverflow(), topVisualOverflow);
+ bottomVisualOverflow = max(boxY + box->bottomVisualOverflow(), bottomVisualOverflow);
}
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list