[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.19-706-ge5415e9
oliver at apple.com
oliver at apple.com
Thu Feb 4 21:22:17 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit d294b97ad398dc177d9d169fd4b986b442c850b1
Author: oliver at apple.com <oliver at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 21 00:31:41 2010 +0000
2010-01-19 Oliver Hunt <oliver at apple.com>
Reviewed by Dan Bernstein.
Insufficient repaint issues with html embedded in foreignObject
https://bugs.webkit.org/show_bug.cgi?id=16318
Partial fix for selection repaint in foreignObject, basically we
just need to make sure foreignObject correctly applies the svg
transform to the selection rect.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintSelection):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::mapLocalToContainer):
* rendering/RenderForeignObject.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53577 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index daecca0..376f3e6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-01-19 Oliver Hunt <oliver at apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Insufficient repaint issues with html embedded in foreignObject
+ https://bugs.webkit.org/show_bug.cgi?id=16318
+
+ Partial fix for selection repaint in foreignObject, basically we
+ just need to make sure foreignObject correctly applies the svg
+ transform to the selection rect.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paintSelection):
+ * rendering/RenderForeignObject.cpp:
+ (WebCore::RenderForeignObject::mapLocalToContainer):
+ * rendering/RenderForeignObject.h:
+
2010-01-20 Gavin Barraclough <barraclough at apple.com>
Reviewed by NOBODY.
diff --git a/WebCore/rendering/RenderBlock.cpp b/WebCore/rendering/RenderBlock.cpp
index 3fd10ea..1bea8e3 100644
--- a/WebCore/rendering/RenderBlock.cpp
+++ b/WebCore/rendering/RenderBlock.cpp
@@ -1957,8 +1957,11 @@ void RenderBlock::paintSelection(PaintInfo& paintInfo, int tx, int ty)
IntRect gapRectsBounds = fillSelectionGaps(this, tx, ty, tx, ty, lastTop, lastLeft, lastRight, &paintInfo);
if (!gapRectsBounds.isEmpty()) {
if (RenderLayer* layer = enclosingLayer()) {
- IntSize offset = hasLayer() ? IntSize() : offsetFromAncestorContainer(layer->renderer());
- gapRectsBounds.move(offset - IntSize(tx, ty));
+ gapRectsBounds.move(IntSize(-tx, -ty));
+ if (!hasLayer()) {
+ FloatRect localBounds(gapRectsBounds);
+ gapRectsBounds = localToContainerQuad(localBounds, layer->renderer()).enclosingBoundingBox();
+ }
layer->addBlockSelectionGapsBounds(gapRectsBounds);
}
}
diff --git a/WebCore/rendering/RenderForeignObject.cpp b/WebCore/rendering/RenderForeignObject.cpp
index 573ae96..6597554 100644
--- a/WebCore/rendering/RenderForeignObject.cpp
+++ b/WebCore/rendering/RenderForeignObject.cpp
@@ -120,6 +120,11 @@ bool RenderForeignObject::nodeAtPoint(const HitTestRequest&, HitTestResult&, int
return false;
}
+void RenderForeignObject::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const
+{
+ SVGRenderBase::mapLocalToContainer(this, repaintContainer, fixed, useTransforms, transformState);
+}
+
} // namespace WebCore
#endif // ENABLE(SVG) && ENABLE(SVG_FOREIGN_OBJECT)
diff --git a/WebCore/rendering/RenderForeignObject.h b/WebCore/rendering/RenderForeignObject.h
index 8ad223f..8cb9a55 100644
--- a/WebCore/rendering/RenderForeignObject.h
+++ b/WebCore/rendering/RenderForeignObject.h
@@ -52,6 +52,8 @@ public:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
virtual bool isSVGForeignObject() const { return true; }
+ virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const;
+
private:
TransformationMatrix translationForAttributes() const;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list