[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 08:41:11 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 837eb36ed2fca8a85d4a92b263a3f9c7a380c258
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri May 21 22:17:10 2004 +0000
Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.
Reviewed by john
* khtml/rendering/bidi.cpp:
(khtml::RenderBlock::layoutInlineChildren):
* khtml/rendering/render_layer.h:
(khtml::RenderLayer::repaintRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 17182d4..09f3615 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,14 @@
+2004-05-21 David Hyatt <hyatt at apple.com>
+
+ Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.
+
+ Reviewed by john
+
+ * khtml/rendering/bidi.cpp:
+ (khtml::RenderBlock::layoutInlineChildren):
+ * khtml/rendering/render_layer.h:
+ (khtml::RenderLayer::repaintRect):
+
=== Safari-141 ===
2004-05-21 Darin Adler <darin at apple.com>
diff --git a/WebCore/khtml/rendering/bidi.cpp b/WebCore/khtml/rendering/bidi.cpp
index 300589c..d5490cb 100644
--- a/WebCore/khtml/rendering/bidi.cpp
+++ b/WebCore/khtml/rendering/bidi.cpp
@@ -25,6 +25,8 @@
#include "render_block.h"
#include "render_text.h"
#include "render_arena.h"
+#include "render_canvas.h"
+#include "khtmlview.h"
#include "xml/dom_docimpl.h"
#include "kdebug.h"
@@ -1362,9 +1364,19 @@ QRect RenderBlock::layoutInlineChildren(bool relayoutChildren)
if (hasFloat)
fullLayout = true; // FIXME: Will need to find a way to optimize floats some day.
- if (fullLayout && !selfNeedsLayout())
+ if (fullLayout && !selfNeedsLayout()) {
setNeedsLayout(true, false); // Mark ourselves as needing a full layout. This way we'll repaint like
// we're supposed to.
+ if (!document()->view()->needsFullRepaint() && m_layer) {
+ // Because we waited until we were already inside layout to discover
+ // that the block really needed a full layout, we missed our chance to repaint the layer
+ // before layout started. Luckily the layer has cached the repaint rect for its original
+ // position and size, and so we can use that to make a repaint happen now.
+ RenderCanvas* c = canvas();
+ if (c && !c->printingMode())
+ c->repaintViewRectangle(m_layer->repaintRect());
+ }
+ }
BidiContext *startEmbed;
if( style()->direction() == LTR ) {
diff --git a/WebCore/khtml/rendering/render_layer.h b/WebCore/khtml/rendering/render_layer.h
index 652cc65..df40d29 100644
--- a/WebCore/khtml/rendering/render_layer.h
+++ b/WebCore/khtml/rendering/render_layer.h
@@ -248,6 +248,8 @@ public:
void updateHoverActiveState(RenderObject::NodeInfo& info);
+ QRect repaintRect() const { return m_repaintRect; }
+
void detach(RenderArena* renderArena);
// Overloaded new operator. Derived classes must override operator new
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list