[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
hyatt
hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:35:03 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 02d687a791332b1b57797bb2a13b63ca0816560e
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Apr 8 00:36:04 2003 +0000
Fix for the scrollbar problem in 3220395. Does not yet fix
the overlap problem. lowest/rightmostPosition got broken by
the RenderFlow split. This patch makes sure that we still crawl
into inlines with overhangingContents.
Reviewed by darin
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_flow.cpp:
(RenderFlow::lowestPosition):
(RenderFlow::rightmostPosition):
* khtml/rendering/render_flow.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index fdf59cd..28a5ab4 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,20 @@
2003-04-07 David Hyatt <hyatt at apple.com>
+ Fix for the scrollbar problem in 3220395. Does not yet fix
+ the overlap problem. lowest/rightmostPosition got broken by
+ the RenderFlow split. This patch makes sure that we still crawl
+ into inlines with overhangingContents.
+
+ Reviewed by darin
+
+ * khtml/rendering/render_block.cpp:
+ * khtml/rendering/render_flow.cpp:
+ (RenderFlow::lowestPosition):
+ (RenderFlow::rightmostPosition):
+ * khtml/rendering/render_flow.h:
+
+2003-04-07 David Hyatt <hyatt at apple.com>
+
* khtml/html/htmlparser.cpp:
(KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index fdf59cd..28a5ab4 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,20 @@
2003-04-07 David Hyatt <hyatt at apple.com>
+ Fix for the scrollbar problem in 3220395. Does not yet fix
+ the overlap problem. lowest/rightmostPosition got broken by
+ the RenderFlow split. This patch makes sure that we still crawl
+ into inlines with overhangingContents.
+
+ Reviewed by darin
+
+ * khtml/rendering/render_block.cpp:
+ * khtml/rendering/render_flow.cpp:
+ (RenderFlow::lowestPosition):
+ (RenderFlow::rightmostPosition):
+ * khtml/rendering/render_flow.h:
+
+2003-04-07 David Hyatt <hyatt at apple.com>
+
* khtml/html/htmlparser.cpp:
(KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index 959670a..3d7ab7d 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -1480,20 +1480,7 @@ RenderBlock::lowestPosition() const
// FIXME: Maybe we can use m_overflowHeight instead?
- int bottom = RenderBox::lowestPosition();
-
- // FIXME: Used to do nothing here in the m_childrenInline case,
- // but that demonstrably didn't work (layout tests failed).
- // FIXME: Is it still OK to look only at the last non-floating
- // non-positioned child? Testing indicates it is, but is the concept
- // 100% right?
- for (RenderObject *c = lastChild(); c; c = c->previousSibling()) {
- if (!c->isFloatingOrPositioned()) {
- int lp = c->yPos() + c->lowestPosition();
- bottom = QMAX(bottom, lp);
- break;
- }
- }
+ int bottom = RenderFlow::lowestPosition();
if (m_floatingObjects) {
FloatingObject* r;
@@ -1528,14 +1515,7 @@ int RenderBlock::rightmostPosition() const
// FIXME: Maybe we can use m_overflowWidth instead?
- int right = RenderBox::rightmostPosition();
-
- for (RenderObject *c = firstChild(); c; c = c->nextSibling()) {
- if (!c->isFloatingOrPositioned()) {
- int rp = c->xPos() + c->rightmostPosition();
- right = QMAX(right, rp);
- }
- }
+ int right = RenderFlow::rightmostPosition();
if (m_floatingObjects) {
FloatingObject* r;
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index a256bc1..dc45065 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -264,3 +264,44 @@ void RenderFlow::repaint(bool immediate)
}
}
+int
+RenderFlow::lowestPosition() const
+{
+ int bottom = RenderBox::lowestPosition();
+
+ // FIXME: It's not OK to look only at the last non-floating
+ // non-positioned child (e.g., negative margins, or a child that itself has
+ // overflow that goes beyond the last child). We want to switch over to using overflow,
+ // but we tried it and it didn't work, so there must be some issues with overflow that
+ // still need to be worked out.
+ bool checkOverhangsOnly = !isRenderBlock() && overhangingContents();
+ if (isRenderBlock() || checkOverhangsOnly) {
+ for (RenderObject *c = lastChild(); c; c = c->previousSibling()) {
+ if (!c->isFloatingOrPositioned() && (!checkOverhangsOnly || c->overhangingContents())) {
+ int lp = c->yPos() + c->lowestPosition();
+ bottom = QMAX(bottom, lp);
+ break;
+ }
+ }
+ }
+
+ return bottom;
+}
+
+int RenderFlow::rightmostPosition() const
+{
+ int right = RenderBox::rightmostPosition();
+
+ // FIXME: We want to switch over to using overflow,
+ // but we tried it and it didn't work, so there must be some issues with overflow that
+ // still need to be worked out.
+ for (RenderObject *c = firstChild(); c; c = c->nextSibling()) {
+ if (!c->isFloatingOrPositioned()) {
+ int rp = c->xPos() + c->rightmostPosition();
+ right = QMAX(right, rp);
+ }
+ }
+
+ return right;
+}
+
diff --git a/WebCore/khtml/rendering/render_flow.h b/WebCore/khtml/rendering/render_flow.h
index 95d27bc..13bbda3 100644
--- a/WebCore/khtml/rendering/render_flow.h
+++ b/WebCore/khtml/rendering/render_flow.h
@@ -70,6 +70,9 @@ public:
int _w, int _h, int _tx, int _ty, PaintAction paintAction);
virtual void repaint(bool immediate = false);
+
+ virtual int lowestPosition() const;
+ virtual int rightmostPosition() const;
protected:
// An inline can be split with blocks occurring in between the inline content.
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list