[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:40:54 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit aeb6a99bdf2fa417624d1a662d5045550e0d911d
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu May 8 02:19:39 2003 +0000
The purpose of this patch is to unify XML and HTML documents' root
element handling. Instead of having a special RenderHTML object
for dealing with <html>, root element handling is now done in
base classes so that it works with XML documents as well.
The changes include:
* Rename RenderRoot to RenderCanvas to more accurately
reflect what this RenderObject represents in CSS2.
* Rename root() to canvas()
* Rename isHtml() to isRoot()
* Rename isRoot() to isCanvas().
* Eliminate RenderHTML and fold its functionality into base
classes (RenderBlock and RenderBox).
* isRoot() now means "are you the RenderObject for the root
element". All isHtml() callers now say isRoot() instead.
Reviewed by gramps
* ForwardingHeaders/rendering/render_canvas.h: Added.
* ForwardingHeaders/rendering/render_html.h: Removed.
* ForwardingHeaders/rendering/render_root.h: Removed.
* WebCore.pbproj/project.pbxproj:
* khtml/ecma/kjs_dom.cpp:
* khtml/ecma/kjs_window.cpp:
* khtml/html/html_baseimpl.cpp:
(HTMLHtmlElementImpl::id):
* khtml/html/html_baseimpl.h:
* khtml/khtmlview.cpp:
(KHTMLView::layout):
(KHTMLView::print):
(KHTMLView::slotPaletteChanged):
(KHTMLView::paint):
(KHTMLView::timerEvent):
* khtml/khtmlview.h:
* khtml/rendering/render_applet.cpp:
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_block.h:
* khtml/rendering/render_body.cpp:
* khtml/rendering/render_box.cpp:
(RenderBox::setStyle):
(RenderBox::paintRootBoxDecorations):
(RenderBox::paintBoxDecorations):
(RenderBox::paintBackgroundExtended):
(RenderBox::containingBlockWidth):
(RenderBox::repaint):
(RenderBox::calcHeight):
(RenderBox::availableHeight):
(RenderBox::calcAbsoluteVertical):
* khtml/rendering/render_box.h:
* khtml/rendering/render_canvas.cpp: Added.
(RenderCanvas::RenderCanvas):
(RenderCanvas::~RenderCanvas):
(RenderCanvas::calcHeight):
(RenderCanvas::calcWidth):
(RenderCanvas::calcMinMaxWidth):
* khtml/rendering/render_canvas.h: Added.
* khtml/rendering/render_container.cpp:
(RenderContainer::removeChildNode):
* khtml/rendering/render_flow.cpp:
* khtml/rendering/render_frames.cpp:
(RenderFrameSet::layout):
(RenderFrameSet::userResize):
* khtml/rendering/render_html.cpp: Removed.
* khtml/rendering/render_html.h: Removed.
* khtml/rendering/render_image.cpp:
(RenderImage::paintObject):
* khtml/rendering/render_layer.cpp:
(RenderLayer::enclosingPositionedAncestor):
(RenderLayer::convertToLayerCoords):
(RenderLayer::constructZTree):
* khtml/rendering/render_layer.h:
* khtml/rendering/render_line.cpp:
* khtml/rendering/render_list.cpp:
(RenderListMarker::paintObject):
* khtml/rendering/render_object.cpp:
(RenderObject::containingBlock):
(RenderObject::canvas):
(RenderObject::container):
(RenderObject::removeFromObjectLists):
(RenderObject::detach):
(RenderObject::nodeAtPoint):
(RenderObject::scheduleRelayout):
* khtml/rendering/render_object.h:
* khtml/rendering/render_replaced.cpp:
* khtml/rendering/render_root.cpp: Removed.
* khtml/rendering/render_root.h: Removed.
* khtml/rendering/render_table.cpp:
(RenderTable::layout):
* khtml/rendering/render_text.cpp:
(RenderText::paintObject):
* khtml/rendering/table_layout.cpp:
(shouldScaleColumns):
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::attach):
(DocumentImpl::setSelection):
(DocumentImpl::clearSelection):
(DocumentImpl::prepareMouseEvent):
* khtml/xml/dom_elementimpl.cpp:
(ElementImpl::createRenderer):
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::rendererIsNeeded):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::adjustPageHeight):
(KWQKHTMLPart::forceLayoutForPageWidth):
(KWQKHTMLPart::selectionRect):
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge _setupRootForPrinting:]):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4305 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 4ef7821..26ee8e5 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,113 @@
+2003-05-06 David Hyatt <hyatt at apple.com>
+
+ The purpose of this patch is to unify XML and HTML documents' root
+ element handling. Instead of having a special RenderHTML object
+ for dealing with <html>, root element handling is now done in
+ base classes so that it works with XML documents as well.
+
+ The changes include:
+ * Rename RenderRoot to RenderCanvas to more accurately
+ reflect what this RenderObject represents in CSS2.
+ * Rename root() to canvas()
+ * Rename isHtml() to isRoot()
+ * Rename isRoot() to isCanvas().
+ * Eliminate RenderHTML and fold its functionality into base
+ classes (RenderBlock and RenderBox).
+ * isRoot() now means "are you the RenderObject for the root
+ element". All isHtml() callers now say isRoot() instead.
+
+ Reviewed by gramps
+
+ * ForwardingHeaders/rendering/render_canvas.h: Added.
+ * ForwardingHeaders/rendering/render_html.h: Removed.
+ * ForwardingHeaders/rendering/render_root.h: Removed.
+ * WebCore.pbproj/project.pbxproj:
+ * khtml/ecma/kjs_dom.cpp:
+ * khtml/ecma/kjs_window.cpp:
+ * khtml/html/html_baseimpl.cpp:
+ (HTMLHtmlElementImpl::id):
+ * khtml/html/html_baseimpl.h:
+ * khtml/khtmlview.cpp:
+ (KHTMLView::layout):
+ (KHTMLView::print):
+ (KHTMLView::slotPaletteChanged):
+ (KHTMLView::paint):
+ (KHTMLView::timerEvent):
+ * khtml/khtmlview.h:
+ * khtml/rendering/render_applet.cpp:
+ * khtml/rendering/render_block.cpp:
+ * khtml/rendering/render_block.h:
+ * khtml/rendering/render_body.cpp:
+ * khtml/rendering/render_box.cpp:
+ (RenderBox::setStyle):
+ (RenderBox::paintRootBoxDecorations):
+ (RenderBox::paintBoxDecorations):
+ (RenderBox::paintBackgroundExtended):
+ (RenderBox::containingBlockWidth):
+ (RenderBox::repaint):
+ (RenderBox::calcHeight):
+ (RenderBox::availableHeight):
+ (RenderBox::calcAbsoluteVertical):
+ * khtml/rendering/render_box.h:
+ * khtml/rendering/render_canvas.cpp: Added.
+ (RenderCanvas::RenderCanvas):
+ (RenderCanvas::~RenderCanvas):
+ (RenderCanvas::calcHeight):
+ (RenderCanvas::calcWidth):
+ (RenderCanvas::calcMinMaxWidth):
+ * khtml/rendering/render_canvas.h: Added.
+ * khtml/rendering/render_container.cpp:
+ (RenderContainer::removeChildNode):
+ * khtml/rendering/render_flow.cpp:
+ * khtml/rendering/render_frames.cpp:
+ (RenderFrameSet::layout):
+ (RenderFrameSet::userResize):
+ * khtml/rendering/render_html.cpp: Removed.
+ * khtml/rendering/render_html.h: Removed.
+ * khtml/rendering/render_image.cpp:
+ (RenderImage::paintObject):
+ * khtml/rendering/render_layer.cpp:
+ (RenderLayer::enclosingPositionedAncestor):
+ (RenderLayer::convertToLayerCoords):
+ (RenderLayer::constructZTree):
+ * khtml/rendering/render_layer.h:
+ * khtml/rendering/render_line.cpp:
+ * khtml/rendering/render_list.cpp:
+ (RenderListMarker::paintObject):
+ * khtml/rendering/render_object.cpp:
+ (RenderObject::containingBlock):
+ (RenderObject::canvas):
+ (RenderObject::container):
+ (RenderObject::removeFromObjectLists):
+ (RenderObject::detach):
+ (RenderObject::nodeAtPoint):
+ (RenderObject::scheduleRelayout):
+ * khtml/rendering/render_object.h:
+ * khtml/rendering/render_replaced.cpp:
+ * khtml/rendering/render_root.cpp: Removed.
+ * khtml/rendering/render_root.h: Removed.
+ * khtml/rendering/render_table.cpp:
+ (RenderTable::layout):
+ * khtml/rendering/render_text.cpp:
+ (RenderText::paintObject):
+ * khtml/rendering/table_layout.cpp:
+ (shouldScaleColumns):
+ * khtml/xml/dom_docimpl.cpp:
+ (DocumentImpl::attach):
+ (DocumentImpl::setSelection):
+ (DocumentImpl::clearSelection):
+ (DocumentImpl::prepareMouseEvent):
+ * khtml/xml/dom_elementimpl.cpp:
+ (ElementImpl::createRenderer):
+ * khtml/xml/dom_nodeimpl.cpp:
+ (NodeImpl::rendererIsNeeded):
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::adjustPageHeight):
+ (KWQKHTMLPart::forceLayoutForPageWidth):
+ (KWQKHTMLPart::selectionRect):
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge _setupRootForPrinting:]):
+
2003-05-07 Darin Adler <darin at apple.com>
Reviewed by John.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 4ef7821..26ee8e5 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,113 @@
+2003-05-06 David Hyatt <hyatt at apple.com>
+
+ The purpose of this patch is to unify XML and HTML documents' root
+ element handling. Instead of having a special RenderHTML object
+ for dealing with <html>, root element handling is now done in
+ base classes so that it works with XML documents as well.
+
+ The changes include:
+ * Rename RenderRoot to RenderCanvas to more accurately
+ reflect what this RenderObject represents in CSS2.
+ * Rename root() to canvas()
+ * Rename isHtml() to isRoot()
+ * Rename isRoot() to isCanvas().
+ * Eliminate RenderHTML and fold its functionality into base
+ classes (RenderBlock and RenderBox).
+ * isRoot() now means "are you the RenderObject for the root
+ element". All isHtml() callers now say isRoot() instead.
+
+ Reviewed by gramps
+
+ * ForwardingHeaders/rendering/render_canvas.h: Added.
+ * ForwardingHeaders/rendering/render_html.h: Removed.
+ * ForwardingHeaders/rendering/render_root.h: Removed.
+ * WebCore.pbproj/project.pbxproj:
+ * khtml/ecma/kjs_dom.cpp:
+ * khtml/ecma/kjs_window.cpp:
+ * khtml/html/html_baseimpl.cpp:
+ (HTMLHtmlElementImpl::id):
+ * khtml/html/html_baseimpl.h:
+ * khtml/khtmlview.cpp:
+ (KHTMLView::layout):
+ (KHTMLView::print):
+ (KHTMLView::slotPaletteChanged):
+ (KHTMLView::paint):
+ (KHTMLView::timerEvent):
+ * khtml/khtmlview.h:
+ * khtml/rendering/render_applet.cpp:
+ * khtml/rendering/render_block.cpp:
+ * khtml/rendering/render_block.h:
+ * khtml/rendering/render_body.cpp:
+ * khtml/rendering/render_box.cpp:
+ (RenderBox::setStyle):
+ (RenderBox::paintRootBoxDecorations):
+ (RenderBox::paintBoxDecorations):
+ (RenderBox::paintBackgroundExtended):
+ (RenderBox::containingBlockWidth):
+ (RenderBox::repaint):
+ (RenderBox::calcHeight):
+ (RenderBox::availableHeight):
+ (RenderBox::calcAbsoluteVertical):
+ * khtml/rendering/render_box.h:
+ * khtml/rendering/render_canvas.cpp: Added.
+ (RenderCanvas::RenderCanvas):
+ (RenderCanvas::~RenderCanvas):
+ (RenderCanvas::calcHeight):
+ (RenderCanvas::calcWidth):
+ (RenderCanvas::calcMinMaxWidth):
+ * khtml/rendering/render_canvas.h: Added.
+ * khtml/rendering/render_container.cpp:
+ (RenderContainer::removeChildNode):
+ * khtml/rendering/render_flow.cpp:
+ * khtml/rendering/render_frames.cpp:
+ (RenderFrameSet::layout):
+ (RenderFrameSet::userResize):
+ * khtml/rendering/render_html.cpp: Removed.
+ * khtml/rendering/render_html.h: Removed.
+ * khtml/rendering/render_image.cpp:
+ (RenderImage::paintObject):
+ * khtml/rendering/render_layer.cpp:
+ (RenderLayer::enclosingPositionedAncestor):
+ (RenderLayer::convertToLayerCoords):
+ (RenderLayer::constructZTree):
+ * khtml/rendering/render_layer.h:
+ * khtml/rendering/render_line.cpp:
+ * khtml/rendering/render_list.cpp:
+ (RenderListMarker::paintObject):
+ * khtml/rendering/render_object.cpp:
+ (RenderObject::containingBlock):
+ (RenderObject::canvas):
+ (RenderObject::container):
+ (RenderObject::removeFromObjectLists):
+ (RenderObject::detach):
+ (RenderObject::nodeAtPoint):
+ (RenderObject::scheduleRelayout):
+ * khtml/rendering/render_object.h:
+ * khtml/rendering/render_replaced.cpp:
+ * khtml/rendering/render_root.cpp: Removed.
+ * khtml/rendering/render_root.h: Removed.
+ * khtml/rendering/render_table.cpp:
+ (RenderTable::layout):
+ * khtml/rendering/render_text.cpp:
+ (RenderText::paintObject):
+ * khtml/rendering/table_layout.cpp:
+ (shouldScaleColumns):
+ * khtml/xml/dom_docimpl.cpp:
+ (DocumentImpl::attach):
+ (DocumentImpl::setSelection):
+ (DocumentImpl::clearSelection):
+ (DocumentImpl::prepareMouseEvent):
+ * khtml/xml/dom_elementimpl.cpp:
+ (ElementImpl::createRenderer):
+ * khtml/xml/dom_nodeimpl.cpp:
+ (NodeImpl::rendererIsNeeded):
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::adjustPageHeight):
+ (KWQKHTMLPart::forceLayoutForPageWidth):
+ (KWQKHTMLPart::selectionRect):
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge _setupRootForPrinting:]):
+
2003-05-07 Darin Adler <darin at apple.com>
Reviewed by John.
diff --git a/WebCore/ForwardingHeaders/rendering/render_canvas.h b/WebCore/ForwardingHeaders/rendering/render_canvas.h
new file mode 100644
index 0000000..13554e5
--- /dev/null
+++ b/WebCore/ForwardingHeaders/rendering/render_canvas.h
@@ -0,0 +1 @@
+#include <render_canvas.h>
diff --git a/WebCore/ForwardingHeaders/rendering/render_html.h b/WebCore/ForwardingHeaders/rendering/render_html.h
deleted file mode 100644
index db730cb..0000000
--- a/WebCore/ForwardingHeaders/rendering/render_html.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <render_html.h>
diff --git a/WebCore/ForwardingHeaders/rendering/render_root.h b/WebCore/ForwardingHeaders/rendering/render_root.h
deleted file mode 100644
index 9051d39..0000000
--- a/WebCore/ForwardingHeaders/rendering/render_root.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <render_root.h>
diff --git a/WebCore/WebCore.pbproj/project.pbxproj b/WebCore/WebCore.pbproj/project.pbxproj
index 21d0cc2..ba9bcd0 100644
--- a/WebCore/WebCore.pbproj/project.pbxproj
+++ b/WebCore/WebCore.pbproj/project.pbxproj
@@ -297,7 +297,6 @@
F523D2D902DE4438018635CA,
F523D2DB02DE4438018635CA,
F523D2DE02DE4438018635CA,
- F523D2E102DE4438018635CA,
F523D2E302DE4438018635CA,
BC7C965503E9EE7000A80004,
F690CFEC031C47F401CA2AC4,
@@ -305,7 +304,6 @@
F523D2E502DE4438018635CA,
F523D2E702DE4438018635CA,
F523D2E902DE4438018635CA,
- F523D2EC02DE4438018635CA,
F523D2EE02DE4438018635CA,
F523D2F002DE4438018635CA,
F523D2F202DE4438018635CA,
@@ -493,6 +491,7 @@
F587870902DE3B8601EA4122,
F587871502DE3B8601EA4122,
BC7B2AFA0450824100A8000F,
+ BC80A6960468B78100DBCC9C,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -680,12 +679,10 @@
F523D2D802DE4438018635CA,
F523D2DA02DE4438018635CA,
F523D2DD02DE4438018635CA,
- F523D2E002DE4438018635CA,
F523D2E202DE4438018635CA,
F523D2E402DE4438018635CA,
F523D2E602DE4438018635CA,
F523D2E802DE4438018635CA,
- F523D2EB02DE4438018635CA,
F523D2ED02DE4438018635CA,
F523D2EF02DE4438018635CA,
F523D2F102DE4438018635CA,
@@ -740,6 +737,7 @@
BC8F61890405949900A80004,
9325AABA041D0E9A00A9CAC5,
BC7B2AFB0450824100A8000F,
+ BC80A6950468B78100DBCC9C,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1595,6 +1593,30 @@
settings = {
};
};
+ BC80A6930468B78100DBCC9C = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ path = render_canvas.cpp;
+ refType = 4;
+ };
+ BC80A6940468B78100DBCC9C = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ path = render_canvas.h;
+ refType = 4;
+ };
+ BC80A6950468B78100DBCC9C = {
+ fileRef = BC80A6930468B78100DBCC9C;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ BC80A6960468B78100DBCC9C = {
+ fileRef = BC80A6940468B78100DBCC9C;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
BC8F61850405949900A80004 = {
fileEncoding = 30;
isa = PBXFileReference;
@@ -3994,18 +4016,6 @@
path = render_frames.h;
refType = 4;
};
- F523D2B502DE4438018635CA = {
- fileEncoding = 30;
- isa = PBXFileReference;
- path = render_html.cpp;
- refType = 4;
- };
- F523D2B602DE4438018635CA = {
- fileEncoding = 30;
- isa = PBXFileReference;
- path = render_html.h;
- refType = 4;
- };
F523D2B702DE4438018635CA = {
fileEncoding = 30;
isa = PBXFileReference;
@@ -4054,18 +4064,6 @@
path = render_replaced.h;
refType = 4;
};
- F523D2C002DE4438018635CA = {
- fileEncoding = 30;
- isa = PBXFileReference;
- path = render_root.cpp;
- refType = 4;
- };
- F523D2C102DE4438018635CA = {
- fileEncoding = 30;
- isa = PBXFileReference;
- path = render_root.h;
- refType = 4;
- };
F523D2C202DE4438018635CA = {
fileEncoding = 30;
isa = PBXFileReference;
@@ -4234,18 +4232,6 @@
settings = {
};
};
- F523D2E002DE4438018635CA = {
- fileRef = F523D2B502DE4438018635CA;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F523D2E102DE4438018635CA = {
- fileRef = F523D2B602DE4438018635CA;
- isa = PBXBuildFile;
- settings = {
- };
- };
F523D2E202DE4438018635CA = {
fileRef = F523D2B702DE4438018635CA;
isa = PBXBuildFile;
@@ -4294,18 +4280,6 @@
settings = {
};
};
- F523D2EB02DE4438018635CA = {
- fileRef = F523D2C002DE4438018635CA;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F523D2EC02DE4438018635CA = {
- fileRef = F523D2C102DE4438018635CA;
- isa = PBXBuildFile;
- settings = {
- };
- };
F523D2ED02DE4438018635CA = {
fileRef = F523D2C202DE4438018635CA;
isa = PBXBuildFile;
@@ -4362,6 +4336,8 @@
F523D2A702DE4438018635CA,
F523D2AA02DE4438018635CA,
F523D2A902DE4438018635CA,
+ BC80A6930468B78100DBCC9C,
+ BC80A6940468B78100DBCC9C,
F523D2AC02DE4438018635CA,
F523D2AB02DE4438018635CA,
F523D2AE02DE4438018635CA,
@@ -4370,8 +4346,6 @@
F523D2AF02DE4438018635CA,
F523D2B302DE4438018635CA,
F523D2B202DE4438018635CA,
- F523D2B502DE4438018635CA,
- F523D2B602DE4438018635CA,
F523D2B702DE4438018635CA,
F523D2B802DE4438018635CA,
BC7C965003E9EE7000A80004,
@@ -4386,8 +4360,6 @@
F523D2BB02DE4438018635CA,
F523D2BE02DE4438018635CA,
F523D2BD02DE4438018635CA,
- F523D2C102DE4438018635CA,
- F523D2C002DE4438018635CA,
F523D2C302DE4438018635CA,
F523D2C202DE4438018635CA,
F523D2C502DE4438018635CA,
diff --git a/WebCore/khtml/ecma/kjs_dom.cpp b/WebCore/khtml/ecma/kjs_dom.cpp
index b6dfa24..2f3663b 100644
--- a/WebCore/khtml/ecma/kjs_dom.cpp
+++ b/WebCore/khtml/ecma/kjs_dom.cpp
@@ -21,7 +21,7 @@
#include <khtmlview.h>
#include "xml/dom2_eventsimpl.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_nodeimpl.h"
#include "xml/dom_docimpl.h"
#include <kdebug.h>
diff --git a/WebCore/khtml/ecma/kjs_window.cpp b/WebCore/khtml/ecma/kjs_window.cpp
index 85936c3..5d71f90 100644
--- a/WebCore/khtml/ecma/kjs_window.cpp
+++ b/WebCore/khtml/ecma/kjs_window.cpp
@@ -33,7 +33,7 @@
#include <kconfig.h>
#include <assert.h>
#include <qstyle.h>
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#if APPLE_CHANGES
#include "KWQLogging.h"
diff --git a/WebCore/khtml/html/html_baseimpl.cpp b/WebCore/khtml/html/html_baseimpl.cpp
index 280d174..a2376d6 100644
--- a/WebCore/khtml/html/html_baseimpl.cpp
+++ b/WebCore/khtml/html/html_baseimpl.cpp
@@ -31,7 +31,6 @@
#include "khtml_part.h"
#include "rendering/render_frames.h"
-#include "rendering/render_html.h"
#include "rendering/render_body.h"
#include "css/cssstyleselector.h"
#include "css/css_stylesheetimpl.h"
@@ -638,23 +637,6 @@ NodeImpl::Id HTMLHtmlElementImpl::id() const
return ID_HTML;
}
-bool HTMLHtmlElementImpl::rendererIsNeeded(RenderStyle *style)
-{
- // Ignore display: none.
- return true;
-}
-
-RenderObject *HTMLHtmlElementImpl::createRenderer(RenderArena *arena, RenderStyle *style)
-{
- return new (arena) RenderHtml(this);
-}
-
-void HTMLHtmlElementImpl::attach()
-{
- createRendererIfNeeded();
- NodeBaseImpl::attach();
-}
-
// -------------------------------------------------------------------------
HTMLIFrameElementImpl::HTMLIFrameElementImpl(DocumentPtr *doc) : HTMLFrameElementImpl(doc)
diff --git a/WebCore/khtml/html/html_baseimpl.h b/WebCore/khtml/html/html_baseimpl.h
index fcdb349..ef423bb 100644
--- a/WebCore/khtml/html/html_baseimpl.h
+++ b/WebCore/khtml/html/html_baseimpl.h
@@ -185,9 +185,6 @@ public:
~HTMLHtmlElementImpl();
virtual Id id() const;
- virtual void attach();
- virtual bool rendererIsNeeded(khtml::RenderStyle *);
- virtual khtml::RenderObject *createRenderer(RenderArena *, khtml::RenderStyle *);
};
diff --git a/WebCore/khtml/khtmlview.cpp b/WebCore/khtml/khtmlview.cpp
index a99fe32..c4e73f9 100644
--- a/WebCore/khtml/khtmlview.cpp
+++ b/WebCore/khtml/khtmlview.cpp
@@ -32,7 +32,7 @@
#include "html/html_inlineimpl.h"
#include "html/html_formimpl.h"
#include "rendering/render_object.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "rendering/render_style.h"
#include "rendering/render_replaced.h"
#include "xml/dom2_eventsimpl.h"
@@ -398,7 +398,7 @@ void KHTMLView::layout()
if( m_part->xmlDocImpl() ) {
DOM::DocumentImpl *document = m_part->xmlDocImpl();
- khtml::RenderRoot* root = static_cast<khtml::RenderRoot *>(document->renderer());
+ khtml::RenderCanvas* root = static_cast<khtml::RenderCanvas *>(document->renderer());
if ( !root ) return;
if (document->isHTMLDocument()) {
@@ -1070,7 +1070,7 @@ QString KHTMLView::mediaType() const
void KHTMLView::print()
{
if(!m_part->xmlDocImpl()) return;
- khtml::RenderRoot *root = static_cast<khtml::RenderRoot *>(m_part->xmlDocImpl()->renderer());
+ khtml::RenderCanvas *root = static_cast<khtml::RenderCanvas *>(m_part->xmlDocImpl()->renderer());
if(!root) return;
// this only works on Unix - we assume 72dpi
@@ -1179,7 +1179,7 @@ void KHTMLView::slotPaletteChanged()
if(!m_part->xmlDocImpl()) return;
DOM::DocumentImpl *document = m_part->xmlDocImpl();
if (!document->isHTMLDocument()) return;
- khtml::RenderRoot *root = static_cast<khtml::RenderRoot *>(document->renderer());
+ khtml::RenderCanvas *root = static_cast<khtml::RenderCanvas *>(document->renderer());
if(!root) return;
root->style()->resetPalette();
NodeImpl *body = static_cast<HTMLDocumentImpl*>(document)->body();
@@ -1191,7 +1191,7 @@ void KHTMLView::slotPaletteChanged()
void KHTMLView::paint(QPainter *p, const QRect &rc, int yOff, bool *more)
{
if(!m_part->xmlDocImpl()) return;
- khtml::RenderRoot *root = static_cast<khtml::RenderRoot *>(m_part->xmlDocImpl()->renderer());
+ khtml::RenderCanvas *root = static_cast<khtml::RenderCanvas *>(m_part->xmlDocImpl()->renderer());
if(!root) return;
m_part->xmlDocImpl()->setPaintDevice(p->device());
@@ -1534,7 +1534,7 @@ void KHTMLView::timerEvent ( QTimerEvent *e )
if( m_part->xmlDocImpl() ) {
DOM::DocumentImpl *document = m_part->xmlDocImpl();
- khtml::RenderRoot* root = static_cast<khtml::RenderRoot *>(document->renderer());
+ khtml::RenderCanvas* root = static_cast<khtml::RenderCanvas *>(document->renderer());
if (root){
// Do not allow a full layout if we had a clip object set.
if ( root->needsLayout() && !m_layoutObject) {
diff --git a/WebCore/khtml/khtmlview.h b/WebCore/khtml/khtmlview.h
index 54b2e4d..fa1ec62 100644
--- a/WebCore/khtml/khtmlview.h
+++ b/WebCore/khtml/khtmlview.h
@@ -48,7 +48,7 @@ namespace DOM {
namespace khtml {
class RenderObject;
- class RenderRoot;
+ class RenderCanvas;
class RenderStyle;
class RenderLineEdit;
class RenderPartObject;
@@ -76,7 +76,7 @@ class KHTMLView : public QScrollView
friend class DOM::HTMLAnchorElementImpl;
friend class DOM::DocumentImpl;
friend class KHTMLPart;
- friend class khtml::RenderRoot;
+ friend class khtml::RenderCanvas;
friend class khtml::RenderObject;
friend class khtml::RenderLineEdit;
friend class khtml::RenderPartObject;
diff --git a/WebCore/khtml/rendering/render_applet.cpp b/WebCore/khtml/rendering/render_applet.cpp
index 3f49fd3..44be58e 100644
--- a/WebCore/khtml/rendering/render_applet.cpp
+++ b/WebCore/khtml/rendering/render_applet.cpp
@@ -26,7 +26,7 @@
#include <kdebug.h>
#include "rendering/render_applet.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_docimpl.h"
#include "khtmlview.h"
#include "khtml_part.h"
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index 4030bed..680b1fe 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -30,7 +30,7 @@
#include <kdebug.h>
#include "rendering/render_text.h"
#include "rendering/render_table.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_nodeimpl.h"
#include "xml/dom_docimpl.h"
#include "html/html_formimpl.h"
@@ -242,6 +242,16 @@ void RenderBlock::addChildToFlow(RenderObject* newChild, RenderObject* beforeChi
if ( madeBoxesNonInline )
removeLeftoverAnonymousBoxes();
+
+ if (newChild->isRoot()) {
+ // Create a layer if we need one.
+ RenderBlock* rootBlock = static_cast<RenderBlock*>(newChild);
+ if (!rootBlock->m_layer) {
+ rootBlock->m_layer = new (renderArena()) RenderLayer(rootBlock);
+ rootBlock->m_layer->insertOnlyThisLayer();
+ }
+ rootBlock->setShouldPaintBackgroundOrBorder(true);
+ }
}
static void getInlineRun(RenderObject* start, RenderObject* stop,
@@ -530,6 +540,24 @@ void RenderBlock::layoutBlock(bool relayoutChildren)
m_layer->checkScrollbarsAfterLayout();
setNeedsLayout(false);
+
+ if (isRoot()) {
+ //kdDebug(0) << renderName() << " height = " << m_height << endl;
+ RenderObject *r = canvas();
+ int lp = r ? r->lowestPosition() : lowestPosition();
+
+ // margins of Html element can only be fixed, right?
+ int margins = style()->marginTop().isFixed() ? style()->marginTop().value : 0;
+ margins += style()->marginBottom().isFixed() ? style()->marginBottom().value : 0;
+
+ if( m_height + margins < lp )
+ m_height = lp - margins;
+
+ m_layer->setHeight(m_height);
+ m_layer->setWidth(m_width);
+
+ //kdDebug(0) << "docHeight = " << m_height << endl;
+ }
}
void RenderBlock::layoutBlockChildren( bool relayoutChildren )
@@ -566,7 +594,7 @@ void RenderBlock::layoutBlockChildren( bool relayoutChildren )
// we're positioned, floating, a table cell.
// For now we only worry about the top border/padding. We will update the variable's
// value when it comes time to check against the bottom border/padding.
- bool canCollapseWithChildren = !isRoot() && !isHtml() && !isPositioned() &&
+ bool canCollapseWithChildren = !isCanvas() && !isRoot() && !isPositioned() &&
!isFloating() && !isTableCell() && !style()->hidesOverflow();
bool canCollapseTopWithChildren = canCollapseWithChildren && (m_height == 0);
@@ -1041,7 +1069,7 @@ void RenderBlock::paint(QPainter* p, int _x, int _y, int _w, int _h, int _tx, in
_ty += m_y;
// check if we need to do anything at all...
- if (!isInlineFlow() && !overhangingContents() && !isRelPositioned() && !isPositioned() )
+ if (!isRoot() && !isInlineFlow() && !overhangingContents() && !isRelPositioned() && !isPositioned() )
{
int h = m_overflowHeight;
int yPos = _ty;
@@ -1637,8 +1665,8 @@ void RenderBlock::addOverHangingFloats( RenderBlock *flow, int xoff, int offset,
kdDebug( 6040 ) << (void *)this << ": adding overhanging floats xoff=" << xoff << " offset=" << offset << " child=" << child << endl;
#endif
- // Prevent floats from being added to the root by <html>.
- if ( !flow->m_floatingObjects || (child && flow->isHtml()) )
+ // Prevent floats from being added to the canvas by the root element, e.g., <html>.
+ if ( !flow->m_floatingObjects || (child && flow->isRoot()) )
return;
// we have overhanging floats
@@ -1792,9 +1820,9 @@ bool RenderBlock::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty,
int sty = _ty + yPos();
if (style()->hidesOverflow() && m_layer)
m_layer->subtractScrollOffset(stx, sty);
- if (isRoot()) {
- stx += static_cast<RenderRoot*>(this)->view()->contentsX();
- sty += static_cast<RenderRoot*>(this)->view()->contentsY();
+ if (isCanvas()) {
+ stx += static_cast<RenderCanvas*>(this)->view()->contentsX();
+ sty += static_cast<RenderCanvas*>(this)->view()->contentsY();
}
FloatingObject* o;
QPtrListIterator<FloatingObject> it(*m_floatingObjects);
diff --git a/WebCore/khtml/rendering/render_block.h b/WebCore/khtml/rendering/render_block.h
index 6dcc556..c70ef90 100644
--- a/WebCore/khtml/rendering/render_block.h
+++ b/WebCore/khtml/rendering/render_block.h
@@ -163,8 +163,8 @@ public:
virtual InlineFlowBox* getFirstLineBox();
// overrides RenderObject
- virtual bool requiresLayer() { return !isTableCell() &&
- (isPositioned() || isRelPositioned() || style()->hidesOverflow()); }
+ virtual bool requiresLayer() { return isRoot() || (!isTableCell() &&
+ (isPositioned() || isRelPositioned() || style()->hidesOverflow())); }
#ifndef NDEBUG
virtual void printTree(int indent=0) const;
diff --git a/WebCore/khtml/rendering/render_body.cpp b/WebCore/khtml/rendering/render_body.cpp
index 8b3738e..40121be 100644
--- a/WebCore/khtml/rendering/render_body.cpp
+++ b/WebCore/khtml/rendering/render_body.cpp
@@ -21,7 +21,7 @@
*
*/
#include "render_body.h"
-#include "render_root.h"
+#include "render_canvas.h"
#include "html/html_baseimpl.h"
#include "xml/dom_docimpl.h"
#include "khtmlview.h"
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index 9bc3641..9db60c5 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -29,7 +29,7 @@
#include "rendering/render_box.h"
#include "rendering/render_replaced.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "rendering/render_table.h"
#include "render_arena.h"
@@ -93,7 +93,7 @@ void RenderBox::setStyle(RenderStyle *_style)
m_layer->insertOnlyThisLayer();
}
}
- else if (m_layer && !isHtml() && !isRoot()) {
+ else if (m_layer && !isRoot() && !isCanvas()) {
m_layer->removeOnlyThisLayer();
m_layer = 0;
}
@@ -176,12 +176,61 @@ void RenderBox::setPixmap(const QPixmap &, const QRect&, CachedImage *image)
repaint(); //repaint bg when it finished loading
}
+void RenderBox::paintRootBoxDecorations(QPainter *p,int, int _y,
+ int, int _h, int _tx, int _ty)
+{
+ //kdDebug( 6040 ) << renderName() << "::paintBoxDecorations()" << _tx << "/" << _ty << endl;
+ QColor c = style()->backgroundColor();
+ CachedImage *bg = style()->backgroundImage();
+
+ if (!c.isValid() && !bg && firstChild()) {
+ if (!c.isValid())
+ c = firstChild()->style()->backgroundColor();
+ if (!bg)
+ bg = firstChild()->style()->backgroundImage();
+ }
+
+ if( !c.isValid() && canvas()->view())
+ c = canvas()->view()->palette().active().color(QColorGroup::Base);
+
+ int w = width();
+ int h = height();
+
+ // kdDebug(0) << "width = " << w <<endl;
+
+ int rw, rh;
+ if (canvas()->view())
+ rw=canvas()->view()->contentsWidth();
+ else
+ rw=canvas()->width();
+ rh=canvas()->height();
+
+ // kdDebug(0) << "rw = " << rw <<endl;
+
+ int bx = _tx - marginLeft();
+ int by = _ty - marginTop();
+ int bw = QMAX(w + marginLeft() + marginRight() + borderLeft() + borderRight(), rw);
+ int bh = QMAX(h + marginTop() + marginBottom() + borderTop() + borderBottom(), rh);
+
+ // CSS2 14.2:
+ // " The background of the box generated by the root element covers the entire canvas."
+ // hence, paint the background even in the margin areas (unlike for every other element!)
+ // I just love these little inconsistencies .. :-( (Dirk)
+ int my = QMAX(by,_y);
-void RenderBox::paintBoxDecorations(QPainter *p,int, int _y,
- int, int _h, int _tx, int _ty)
+ paintBackground(p, c, bg, my, _h, bx, by, bw, bh);
+
+ if(style()->hasBorder())
+ paintBorder( p, _tx, _ty, w, h, style() );
+}
+
+void RenderBox::paintBoxDecorations(QPainter *p,int _x, int _y,
+ int _w, int _h, int _tx, int _ty)
{
//kdDebug( 6040 ) << renderName() << "::paintDecorations()" << endl;
-
+ if (isRoot())
+ return paintRootBoxDecorations(p, _x, _y, _w, _h, _tx, _ty);
+
int w = width();
int h = height() + borderTopExtra() + borderBottomExtra();
_ty -= borderTopExtra();
@@ -217,9 +266,9 @@ void RenderBox::paintBackgroundExtended(QPainter *p, const QColor &c, CachedImag
// ### might need to add some correct offsets
// ### use paddingX/Y
- //hacky stuff
+ // for propagation of <body> up to <html>
RenderStyle* sptr = style();
- if ( isHtml() && firstChild() && !style()->backgroundImage() )
+ if ((isRoot() && element() && element()->id() == ID_HTML) && firstChild() && !style()->backgroundImage())
sptr = firstChild()->style();
int sx = 0;
@@ -408,6 +457,9 @@ void RenderBox::close()
short RenderBox::containingBlockWidth() const
{
+ if (isRoot() && canvas()->view())
+ return canvas()->view()->visibleWidth();
+
RenderBlock* cb = containingBlock();
if ((style()->hidesOverflow() || ((style()->htmlHacks() || isTable()) && style()->flowAroundFloats()))
&& style()->width().isVariable())
@@ -451,6 +503,12 @@ void RenderBox::position(InlineBox* box, int from, int len, bool reverse)
void RenderBox::repaint(bool immediate)
{
//kdDebug( 6040 ) << "repaint!" << endl;
+ if (isRoot()) {
+ RenderObject *cb = containingBlock();
+ if(cb != this)
+ cb->repaint(immediate);
+ return;
+ }
int ow = style() ? style()->outlineWidth() : 0;
repaintRectangle(-ow, -ow, overflowWidth(false)+ow*2, overflowHeight(false)+ow*2, immediate);
}
@@ -716,12 +774,12 @@ void RenderBox::calcHeight()
ch = cb->style()->height();
}
- if (cb->isRoot()) {
- // Don't allow this to affect the root's m_height member variable, since this
- // can get called while the root is still laying out its kids.
+ if (cb->isCanvas()) {
+ // Don't allow this to affect the canvas' m_height member variable, since this
+ // can get called while the canvas is still laying out its kids.
// e.g., <html style="height:100%">etc. -dwh
int oldHeight = cb->height();
- static_cast<RenderRoot*>(cb)->calcHeight();
+ static_cast<RenderCanvas*>(cb)->calcHeight();
fh = h.width(cb->height()) + borderTop() + paddingTop() + borderBottom() + paddingBottom();
cb->setHeight(oldHeight);
}
@@ -798,8 +856,8 @@ int RenderBox::availableHeight() const
if (h.isFixed())
return h.value;
- if (isRoot())
- return static_cast<const RenderRoot*>(this)->viewportHeight();
+ if (isCanvas())
+ return static_cast<const RenderCanvas*>(this)->viewportHeight();
// We need to stop here, since we don't want to increase the height of the table
// artificially. We're going to rely on this cell getting expanded to some new
@@ -1012,7 +1070,7 @@ void RenderBox::calcAbsoluteVertical()
if (hl.isFixed())
ch = hl.value + cb->paddingTop()
+ cb->paddingBottom() + cb->borderTop() + cb->borderBottom();
- else if (cb->isHtml())
+ else if (cb->isRoot())
ch = cb->availableHeight();
else
ch = cb->height();
diff --git a/WebCore/khtml/rendering/render_box.h b/WebCore/khtml/rendering/render_box.h
index 1ffac9f..2254335 100644
--- a/WebCore/khtml/rendering/render_box.h
+++ b/WebCore/khtml/rendering/render_box.h
@@ -119,6 +119,9 @@ public:
protected:
virtual void paintBoxDecorations(QPainter *p,int _x, int _y,
int _w, int _h, int _tx, int _ty);
+ void paintRootBoxDecorations(QPainter *p,int, int _y,
+ int, int _h, int _tx, int _ty);
+
void paintBackground(QPainter *p, const QColor &c, CachedImage *bg, int clipy, int cliph, int _tx, int _ty, int w, int h);
void outlineBox(QPainter *p, int _tx, int _ty, const char *color = "red");
diff --git a/WebCore/khtml/rendering/render_root.cpp b/WebCore/khtml/rendering/render_canvas.cpp
similarity index 88%
rename from WebCore/khtml/rendering/render_root.cpp
rename to WebCore/khtml/rendering/render_canvas.cpp
index afae5ec..564ad41 100644
--- a/WebCore/khtml/rendering/render_root.cpp
+++ b/WebCore/khtml/rendering/render_canvas.cpp
@@ -19,7 +19,7 @@
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "render_layer.h"
#include "xml/dom_docimpl.h"
@@ -35,7 +35,7 @@ using namespace khtml;
//#define BOX_DEBUG
//#define SPEED_DEBUG
-RenderRoot::RenderRoot(DOM::NodeImpl* node, KHTMLView *view)
+RenderCanvas::RenderCanvas(DOM::NodeImpl* node, KHTMLView *view)
: RenderBlock(node)
{
// init RenderObject attributes
@@ -67,11 +67,11 @@ RenderRoot::RenderRoot(DOM::NodeImpl* node, KHTMLView *view)
m_layer = new (node->getDocument()->renderArena()) RenderLayer(this);
}
-RenderRoot::~RenderRoot()
+RenderCanvas::~RenderCanvas()
{
}
-void RenderRoot::calcHeight()
+void RenderCanvas::calcHeight()
{
if (!m_printingMode && m_view)
{
@@ -83,7 +83,7 @@ void RenderRoot::calcHeight()
}
}
-void RenderRoot::calcWidth()
+void RenderCanvas::calcWidth()
{
// the width gets set by KHTMLView::print when printing to a printer.
if(m_printingMode || !m_view)
@@ -107,7 +107,7 @@ void RenderRoot::calcWidth()
m_marginRight = 0;
}
-void RenderRoot::calcMinMaxWidth()
+void RenderCanvas::calcMinMaxWidth()
{
KHTMLAssert( !minMaxKnown() );
@@ -120,7 +120,7 @@ void RenderRoot::calcMinMaxWidth()
//#define SPEED_DEBUG
-void RenderRoot::layout()
+void RenderCanvas::layout()
{
if (m_printingMode)
m_minWidth = m_width;
@@ -135,12 +135,12 @@ void RenderRoot::layout()
if ( recalcMinMax() )
recalcMinMaxWidths();
#ifdef SPEED_DEBUG
- kdDebug() << "RenderRoot::calcMinMax time used=" << qt.elapsed() << endl;
+ kdDebug() << "RenderCanvas::calcMinMax time used=" << qt.elapsed() << endl;
qt.start();
#endif
#ifdef SPEED_DEBUG
- kdDebug() << "RenderRoot::layout time used=" << qt.elapsed() << endl;
+ kdDebug() << "RenderCanvas::layout time used=" << qt.elapsed() << endl;
qt.start();
#endif
if (!m_printingMode) {
@@ -171,7 +171,7 @@ void RenderRoot::layout()
layoutPositionedObjects( true );
#ifdef SPEED_DEBUG
- kdDebug() << "RenderRoot::end time used=" << qt.elapsed() << endl;
+ kdDebug() << "RenderCanvas::end time used=" << qt.elapsed() << endl;
#endif
layer()->setHeight(m_height);
@@ -180,7 +180,7 @@ void RenderRoot::layout()
setNeedsLayout(false);
}
-bool RenderRoot::absolutePosition(int &xPos, int &yPos, bool f)
+bool RenderCanvas::absolutePosition(int &xPos, int &yPos, bool f)
{
if ( f && m_view) {
xPos = m_view->contentsX();
@@ -192,17 +192,17 @@ bool RenderRoot::absolutePosition(int &xPos, int &yPos, bool f)
return true;
}
-void RenderRoot::paint(QPainter *p, int _x, int _y, int _w, int _h, int _tx, int _ty,
+void RenderCanvas::paint(QPainter *p, int _x, int _y, int _w, int _h, int _tx, int _ty,
PaintAction paintAction)
{
paintObject(p, _x, _y, _w, _h, _tx, _ty, paintAction);
}
-void RenderRoot::paintObject(QPainter *p, int _x, int _y,
+void RenderCanvas::paintObject(QPainter *p, int _x, int _y,
int _w, int _h, int _tx, int _ty, PaintAction paintAction)
{
#ifdef DEBUG_LAYOUT
- kdDebug( 6040 ) << renderName() << "(RenderRoot) " << this << " ::paintObject() w/h = (" << width() << "/" << height() << ")" << endl;
+ kdDebug( 6040 ) << renderName() << "(RenderCanvas) " << this << " ::paintObject() w/h = (" << width() << "/" << height() << ")" << endl;
#endif
// 1. paint background, borders etc
if (paintAction == PaintActionElementBackground) {
@@ -235,21 +235,7 @@ void RenderRoot::paintObject(QPainter *p, int _x, int _y,
}
-void RenderRoot::paintBoxDecorations(QPainter *p, int x, int y, int w, int h, int tx, int ty)
-{
- // For now, this function is only used when we don't have an
- // HTML object inside us, for plain XML for example. Eventually,
- // we probably want to remove RenderHtml::paintBoxDecorations,
- // and do all the work here instead.
-
- if ((firstChild() && firstChild()->isHtml()) || !view()) {
- return;
- }
-
- p->fillRect(x, y, w, h, view()->palette().active().color(QColorGroup::Base));
-}
-
-void RenderRoot::repaintRectangle(int x, int y, int w, int h, bool immediate, bool f)
+void RenderCanvas::repaintRectangle(int x, int y, int w, int h, bool immediate, bool f)
{
if (m_printingMode) return;
// kdDebug( 6040 ) << "updating views contents (" << x << "/" << y << ") (" << w << "/" << h << ")" << endl;
@@ -269,7 +255,7 @@ void RenderRoot::repaintRectangle(int x, int y, int w, int h, bool immediate, bo
m_view->scheduleRepaint(x, y, w, h);
}
-void RenderRoot::repaint(bool immediate)
+void RenderCanvas::repaint(bool immediate)
{
if (m_view && !m_printingMode) {
if (immediate) {
@@ -288,7 +274,7 @@ void RenderRoot::repaint(bool immediate)
}
}
-void RenderRoot::close()
+void RenderCanvas::close()
{
setNeedsLayout(true);
if (m_view) {
@@ -312,13 +298,14 @@ static QRect enclosingPositionedRect (RenderObject *n)
return rect;
}
-QRect RenderRoot::selectionRect() const
+QRect RenderCanvas::selectionRect() const
{
RenderObject *r = m_selectionStart;
if (!r)
return QRect();
QRect selectionRect = enclosingPositionedRect(r);
+
while (r && r != m_selectionEnd)
{
RenderObject* n;
@@ -341,15 +328,15 @@ QRect RenderRoot::selectionRect() const
return selectionRect;
}
-void RenderRoot::setSelection(RenderObject *s, int sp, RenderObject *e, int ep)
+void RenderCanvas::setSelection(RenderObject *s, int sp, RenderObject *e, int ep)
{
// Check we got valid renderobjects. www.msnbc.com and clicking around, to find the case where this happened.
if ( !s || !e )
{
- kdWarning(6040) << "RenderRoot::setSelection() called with start=" << s << " end=" << e << endl;
+ kdWarning(6040) << "RenderCanvas::setSelection() called with start=" << s << " end=" << e << endl;
return;
}
- //kdDebug( 6040 ) << "RenderRoot::setSelection(" << s << "," << sp << "," << e << "," << ep << ")" << endl;
+ //kdDebug( 6040 ) << "RenderCanvas::setSelection(" << s << "," << sp << "," << e << "," << ep << ")" << endl;
#if APPLE_CHANGES
// Cut out early if the selection hasn't changed.
@@ -529,9 +516,9 @@ void RenderRoot::setSelection(RenderObject *s, int sp, RenderObject *e, int ep)
#if APPLE_CHANGES
-void RenderRoot::clearSelection(bool doRepaint)
+void RenderCanvas::clearSelection(bool doRepaint)
#else
-void RenderRoot::clearSelection()
+void RenderCanvas::clearSelection()
#endif
{
// update selection status of all objects between m_selectionStart and m_selectionEnd
@@ -577,13 +564,13 @@ void RenderRoot::clearSelection()
m_selectionEndPos = -1;
}
-void RenderRoot::selectionStartEnd(int& spos, int& epos)
+void RenderCanvas::selectionStartEnd(int& spos, int& epos)
{
spos = m_selectionStartPos;
epos = m_selectionEndPos;
}
-QRect RenderRoot::viewRect() const
+QRect RenderCanvas::viewRect() const
{
if (m_printingMode)
return QRect(0,0, m_width, m_height);
@@ -595,7 +582,7 @@ QRect RenderRoot::viewRect() const
else return QRect(0,0,m_rootWidth,m_rootHeight);
}
-int RenderRoot::docHeight() const
+int RenderCanvas::docHeight() const
{
int h;
if (m_printingMode || !m_view)
@@ -620,7 +607,7 @@ int RenderRoot::docHeight() const
return h;
}
-int RenderRoot::docWidth() const
+int RenderCanvas::docWidth() const
{
int w;
if (m_printingMode || !m_view)
@@ -643,7 +630,7 @@ int RenderRoot::docWidth() const
#if APPLE_CHANGES
// The idea here is to take into account what object is moving the pagination point, and
// thus choose the best place to chop it.
-void RenderRoot::setBestTruncatedAt(int y, RenderObject *forRenderer)
+void RenderCanvas::setBestTruncatedAt(int y, RenderObject *forRenderer)
{
// prefer the widest object who tries to move the pagination point
int width = forRenderer->width();
diff --git a/WebCore/khtml/rendering/render_root.h b/WebCore/khtml/rendering/render_canvas.h
similarity index 90%
rename from WebCore/khtml/rendering/render_root.h
rename to WebCore/khtml/rendering/render_canvas.h
index fa9c0c0..ffb161a 100644
--- a/WebCore/khtml/rendering/render_root.h
+++ b/WebCore/khtml/rendering/render_canvas.h
@@ -19,8 +19,8 @@
* Boston, MA 02111-1307, USA.
*
*/
-#ifndef render_root_h
-#define render_root_h
+#ifndef render_canvas_h
+#define render_canvas_h
#include "render_block.h"
@@ -29,15 +29,15 @@ class QScrollView;
namespace khtml {
-class RenderRoot : public RenderBlock
+class RenderCanvas : public RenderBlock
{
public:
- RenderRoot(DOM::NodeImpl* node, KHTMLView *view);
- virtual ~RenderRoot();
+ RenderCanvas(DOM::NodeImpl* node, KHTMLView *view);
+ virtual ~RenderCanvas();
- virtual const char *renderName() const { return "RenderRoot"; }
+ virtual const char *renderName() const { return "RenderCanvas"; }
- virtual bool isRoot() const { return true; }
+ virtual bool isCanvas() const { return true; }
virtual void layout();
virtual void calcWidth();
@@ -57,8 +57,7 @@ public:
PaintAction paintAction);
void paintObject(QPainter *p, int _x, int _y,
int _w, int _h, int _tx, int _ty, PaintAction paintAction);
- virtual void paintBoxDecorations(QPainter *, int x, int y, int w, int h, int tx, int ty);
-
+
virtual void setSelection(RenderObject *s, int sp, RenderObject *e, int ep);
virtual void clearSelection(bool doRepaint=true);
virtual RenderObject *selectionStart() const { return m_selectionStart; }
diff --git a/WebCore/khtml/rendering/render_container.cpp b/WebCore/khtml/rendering/render_container.cpp
index 76135e5..3aa5012 100644
--- a/WebCore/khtml/rendering/render_container.cpp
+++ b/WebCore/khtml/rendering/render_container.cpp
@@ -29,7 +29,7 @@
#include "render_table.h"
#include "render_text.h"
#include "render_image.h"
-#include "render_root.h"
+#include "render_canvas.h"
#include <kdebug.h>
#include <assert.h>
@@ -170,8 +170,8 @@ RenderObject* RenderContainer::removeChildNode(RenderObject* oldChild)
RenderObject *root = oldChild;
while (root && root->parent())
root = root->parent();
- if (root->isRoot()) {
- static_cast<RenderRoot*>(root)->clearSelection();
+ if (root->isCanvas()) {
+ static_cast<RenderCanvas*>(root)->clearSelection();
}
}
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 9778742..a983154 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -30,7 +30,7 @@
#include "rendering/render_flow.h"
#include "rendering/render_text.h"
#include "rendering/render_table.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_nodeimpl.h"
#include "xml/dom_docimpl.h"
#include "html/html_formimpl.h"
diff --git a/WebCore/khtml/rendering/render_frames.cpp b/WebCore/khtml/rendering/render_frames.cpp
index 8a9188b..46656ae 100644
--- a/WebCore/khtml/rendering/render_frames.cpp
+++ b/WebCore/khtml/rendering/render_frames.cpp
@@ -25,7 +25,7 @@
//#define DEBUG_LAYOUT
#include "rendering/render_frames.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "html/html_baseimpl.h"
#include "html/html_objectimpl.h"
#include "html/htmltokenizer.h"
@@ -102,7 +102,7 @@ void RenderFrameSet::layout( )
KHTMLAssert( minMaxKnown() );
if ( !parent()->isFrameSet() ) {
- KHTMLView* view = root()->view();
+ KHTMLView* view = canvas()->view();
m_width = view->visibleWidth();
m_height = view->visibleHeight();
}
@@ -403,7 +403,7 @@ bool RenderFrameSet::userResize( MouseEventImpl *evt )
m_oldpos = -1;
}
else
- root()->view()->viewport()->setCursor(cursor);
+ canvas()->view()->viewport()->setCursor(cursor);
}
@@ -439,13 +439,13 @@ bool RenderFrameSet::userResize( MouseEventImpl *evt )
else if (m_resizing || evt->id() == EventImpl::MOUSEUP_EVENT) {
#if APPLE_CHANGES
- KHTMLView *v = root()->view();
+ KHTMLView *v = canvas()->view();
QPainter paint;
v->disableFlushDrawing();
v->lockDrawingFocus();
#else
- QPainter paint( root()->view() );
+ QPainter paint( canvas()->view() );
#endif
paint.setPen( Qt::gray );
paint.setBrush( Qt::gray );
diff --git a/WebCore/khtml/rendering/render_html.cpp b/WebCore/khtml/rendering/render_html.cpp
deleted file mode 100644
index 7737abc..0000000
--- a/WebCore/khtml/rendering/render_html.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * This file is part of the html renderer for KDE.
- *
- * Copyright (C) 2000 Lars Knoll (knoll at kde.org)
- * Copyright (C) 2003 Apple Computer, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- */
-#include "rendering/render_html.h"
-#include "rendering/render_root.h"
-#include "html/html_elementimpl.h"
-#include "xml/dom_docimpl.h"
-
-#include "khtmlview.h"
-
-#include <kdebug.h>
-
-using namespace khtml;
-
-RenderHtml::RenderHtml(DOM::HTMLElementImpl* node)
- : RenderBlock(node)
-{
- m_layer = new (node->getDocument()->renderArena()) RenderLayer(this);
-}
-
-RenderHtml::~RenderHtml()
-{
-}
-
-void RenderHtml::setStyle(RenderStyle *style)
-{
- if (style->display() != NONE) {
- style->setDisplay(BLOCK); // Don't allow RenderHTML to be inline.
- }
- RenderBlock::setStyle(style);
- setShouldPaintBackgroundOrBorder(true);
-}
-
-void RenderHtml::paint(QPainter *p, int _x, int _y, int _w, int _h, int _tx, int _ty,
- PaintAction paintAction)
-{
- _tx += m_x;
- _ty += m_y;
-
- //kdDebug(0) << "html:paint " << _tx << "/" << _ty << endl;
- paintObject(p, _x, _y, _w, _h, _tx, _ty, paintAction);
-}
-
-void RenderHtml::paintBoxDecorations(QPainter *p,int, int _y,
- int, int _h, int _tx, int _ty)
-{
- //kdDebug( 6040 ) << renderName() << "::paintBoxDecorations()" << _tx << "/" << _ty << endl;
-
- QColor c = style()->backgroundColor();
- CachedImage *bg = style()->backgroundImage();
-
- if (!c.isValid() && !bg && firstChild()) {
- if (!c.isValid())
- c = firstChild()->style()->backgroundColor();
- if (!bg)
- bg = firstChild()->style()->backgroundImage();
- }
-
- if( !c.isValid() && root()->view())
- c = root()->view()->palette().active().color(QColorGroup::Base);
-
- int w = width();
- int h = height();
-
-// kdDebug(0) << "width = " << w <<endl;
-
- int rw, rh;
- if (root()->view())
- rw=root()->view()->contentsWidth();
- else
- rw=root()->width();
- rh=root()->height();
-
-// kdDebug(0) << "rw = " << rw <<endl;
-
- int bx = _tx - marginLeft();
- int by = _ty - marginTop();
- int bw = QMAX(w + marginLeft() + marginRight() + borderLeft() + borderRight(), rw);
- int bh = QMAX(h + marginTop() + marginBottom() + borderTop() + borderBottom(), rh);
-
- // CSS2 14.2:
- // " The background of the box generated by the root element covers the entire canvas."
- // hence, paint the background even in the margin areas (unlike for every other element!)
- // I just love these little inconsistencies .. :-( (Dirk)
- int my = QMAX(by,_y);
-
- paintBackground(p, c, bg, my, _h, bx, by, bw, bh);
-
- if(style()->hasBorder())
- paintBorder( p, _tx, _ty, w, h, style() );
-}
-
-void RenderHtml::repaint(bool immediate)
-{
- RenderObject *cb = containingBlock();
- if(cb != this)
- cb->repaint(immediate);
-}
-
-void RenderHtml::layout()
-{
- RenderBlock::layout();
-
- //kdDebug(0) << renderName() << " height = " << m_height << endl;
- RenderObject *r = root();
- int lp = r ? r->lowestPosition() : lowestPosition();
-
- // margins of Html element can only be fixed, right?
- int margins = style()->marginTop().isFixed() ? style()->marginTop().value : 0;
- margins += style()->marginBottom().isFixed() ? style()->marginBottom().value : 0;
-
- if( m_height + margins < lp )
- m_height = lp - margins;
-
- layer()->setHeight(m_height);
- layer()->setWidth(m_width);
-
- //kdDebug(0) << "docHeight = " << m_height << endl;
-}
-
-short RenderHtml::containingBlockWidth() const
-{
- if (root()->view())
- return root()->view()->visibleWidth();
- else
- return RenderBlock::containingBlockWidth();
-}
diff --git a/WebCore/khtml/rendering/render_html.h b/WebCore/khtml/rendering/render_html.h
deleted file mode 100644
index 29be999..0000000
--- a/WebCore/khtml/rendering/render_html.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file is part of the html renderer for KDE.
- *
- * Copyright (C) 2000 Lars Knoll (knoll at kde.org)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- */
-#ifndef RENDER_HTML
-#define RENDER_HTML
-
-#include "render_block.h"
-
-namespace DOM {
-
- class HTMLElementImpl;
-}
-
-class QScrollView;
-
-namespace khtml {
-
- class RenderHtml : public RenderBlock
- {
- public:
- RenderHtml(DOM::HTMLElementImpl* node);
- virtual ~RenderHtml();
-
- virtual const char *renderName() const { return "RenderHtml"; }
-
- virtual bool isHtml() const { return true; }
- virtual void setStyle(RenderStyle *style);
- virtual void paint(QPainter *, int x, int y, int w, int h, int tx, int ty, PaintAction paintAction);
- virtual void repaint(bool immediate=false);
- virtual void layout();
- virtual short containingBlockWidth() const;
- protected:
- virtual void paintBoxDecorations(QPainter *p,int _x, int _y,
- int _w, int _h, int _tx, int _ty);
- private:
- QScrollView* m_view;
- };
-};
-#endif
diff --git a/WebCore/khtml/rendering/render_image.cpp b/WebCore/khtml/rendering/render_image.cpp
index df447b0..a04c28b 100644
--- a/WebCore/khtml/rendering/render_image.cpp
+++ b/WebCore/khtml/rendering/render_image.cpp
@@ -25,7 +25,7 @@
//#define DEBUG_LAYOUT
#include "render_image.h"
-#include "render_root.h"
+#include "render_canvas.h"
#include <qdrawutil.h>
#include <qpainter.h>
@@ -199,7 +199,7 @@ void RenderImage::paintObject(QPainter *p, int /*_x*/, int /*_y*/, int /*_w*/, i
int leftPad = paddingLeft();
int topPad = paddingTop();
- if (khtml::printpainter && !root()->printImages())
+ if (khtml::printpainter && !canvas()->printImages())
return;
//kdDebug( 6040 ) << " contents (" << contentWidth << "/" << contentHeight << ") border=" << borderLeft() << " padding=" << paddingLeft() << endl;
diff --git a/WebCore/khtml/rendering/render_layer.cpp b/WebCore/khtml/rendering/render_layer.cpp
index 45626a1..c1c86d2 100644
--- a/WebCore/khtml/rendering/render_layer.cpp
+++ b/WebCore/khtml/rendering/render_layer.cpp
@@ -137,7 +137,7 @@ RenderLayer*
RenderLayer::enclosingPositionedAncestor()
{
RenderLayer* curr = parent();
- for ( ; curr && !curr->m_object->isRoot() && !curr->m_object->isHtml() &&
+ for ( ; curr && !curr->m_object->isCanvas() && !curr->m_object->isRoot() &&
!curr->m_object->isPositioned() && !curr->m_object->isRelPositioned();
curr = curr->parent());
@@ -257,7 +257,7 @@ RenderLayer::convertToLayerCoords(RenderLayer* ancestorLayer, int& x, int& y)
if (m_object->style()->position() == FIXED) {
// Add in the offset of the view. We can obtain this by calling
- // absolutePosition() on the RenderRoot.
+ // absolutePosition() on the RenderCanvas.
int xOff, yOff;
m_object->absolutePosition(xOff, yOff, true);
x += xOff;
@@ -838,7 +838,7 @@ RenderLayer::constructZTree(QRect overflowClipRect, QRect posClipRect,
// block elements, since inline non-replaced elements have a width of 0 (and
// thus the layer does too). We also exclude the root from this test, since
// the HTML can be much taller than the root (because of scrolling).
- if (renderer()->isRoot() || renderer()->isHtml() || renderer()->isBody() ||
+ if (renderer()->isCanvas() || renderer()->isRoot() || renderer()->isBody() ||
renderer()->hasOverhangingFloats() ||
(renderer()->isInline() && !renderer()->isReplaced()) ||
(eventProcessing && damageRect.contains(xMousePos,yMousePos)) ||
diff --git a/WebCore/khtml/rendering/render_layer.h b/WebCore/khtml/rendering/render_layer.h
index 74b604d..fa2db5e 100644
--- a/WebCore/khtml/rendering/render_layer.h
+++ b/WebCore/khtml/rendering/render_layer.h
@@ -56,7 +56,7 @@ namespace khtml {
class RenderStyle;
class RenderTable;
class CachedObject;
- class RenderRoot;
+ class RenderCanvas;
class RenderText;
class RenderFrameSet;
class RenderObject;
diff --git a/WebCore/khtml/rendering/render_line.cpp b/WebCore/khtml/rendering/render_line.cpp
index 553fbca..76791e4 100644
--- a/WebCore/khtml/rendering/render_line.cpp
+++ b/WebCore/khtml/rendering/render_line.cpp
@@ -28,7 +28,6 @@
#include "rendering/render_flow.h"
#include "rendering/render_text.h"
#include "rendering/render_table.h"
-#include "rendering/render_root.h"
#include "xml/dom_nodeimpl.h"
#include "xml/dom_docimpl.h"
#include "html/html_formimpl.h"
diff --git a/WebCore/khtml/rendering/render_list.cpp b/WebCore/khtml/rendering/render_list.cpp
index 2d874fa..8ba6d8d 100644
--- a/WebCore/khtml/rendering/render_list.cpp
+++ b/WebCore/khtml/rendering/render_list.cpp
@@ -23,7 +23,7 @@
*/
#include "render_list.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_docimpl.h"
#include "misc/htmltags.h"
@@ -392,7 +392,7 @@ void RenderListMarker::paintObject(QPainter *p, int, int _y,
}
if (_ty + m_height + paddingBottom() + borderBottom() >= _y+_h)
{
- RenderRoot *rootObj = root();
+ RenderCanvas *rootObj = canvas();
if (_ty < rootObj->truncatedAt())
#if APPLE_CHANGES
rootObj->setBestTruncatedAt(_ty, this);
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index b17c01d..5682f2e 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -26,7 +26,7 @@
#include "rendering/render_object.h"
#include "rendering/render_table.h"
#include "rendering/render_list.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "xml/dom_elementimpl.h"
#include "xml/dom_docimpl.h"
#include "misc/htmlhashes.h"
@@ -424,17 +424,17 @@ RenderBlock* RenderObject::containingBlock() const
{
if(isTableCell())
return static_cast<const RenderTableCell *>(this)->table();
- if (isRoot())
+ if (isCanvas())
return (RenderBlock*)this;
RenderObject *o = parent();
if (m_style->position() == FIXED) {
- while ( o && !o->isRoot() )
+ while ( o && !o->isCanvas() )
o = o->parent();
}
else if (m_style->position() == ABSOLUTE) {
while (o && (o->style()->position() == STATIC || (o->isInline() && !o->isReplaced()))
- && !o->isHtml() && !o->isRoot())
+ && !o->isRoot() && !o->isCanvas())
o = o->parent();
} else {
while (o && ((o->isInline() && !o->isReplaced()) || o->isTableRow() || o->isTableSection()
@@ -1090,13 +1090,13 @@ int RenderObject::paddingRight() const
return w;
}
-RenderRoot* RenderObject::root() const
+RenderCanvas* RenderObject::canvas() const
{
RenderObject* o = const_cast<RenderObject*>( this );
while ( o->parent() ) o = o->parent();
- KHTMLAssert( o->isRoot() );
- return static_cast<RenderRoot*>( o );
+ KHTMLAssert( o->isCanvas() );
+ return static_cast<RenderCanvas*>( o );
}
RenderObject *RenderObject::container() const
@@ -1105,8 +1105,8 @@ RenderObject *RenderObject::container() const
RenderObject *o = 0;
if( pos == FIXED ) {
// container() can be called on an object that is not in the
- // tree yet. We don't call root() since it will assert if it
- // can't get back to the root. Instead we just walk as high up
+ // tree yet. We don't call canvas() since it will assert if it
+ // can't get back to the canvas. Instead we just walk as high up
// as we can. If we're in the tree, we'll get the root. If we
// aren't we'll get the root of our little subtree (most likely
// we'll just return 0).
@@ -1118,7 +1118,7 @@ RenderObject *RenderObject::container() const
// we may not have one if we're part of an uninstalled subtree. We'll
// climb as high as we can though.
o = parent();
- while (o && o->style()->position() == STATIC && !o->isHtml() && !o->isRoot())
+ while (o && o->style()->position() == STATIC && !o->isRoot() && !o->isCanvas())
o = o->parent();
}
else
@@ -1141,7 +1141,7 @@ void RenderObject::removeFromObjectLists()
if (isFloating()) {
RenderBlock* outermostBlock = containingBlock();
for (RenderBlock* p = outermostBlock;
- p && !p->isRoot() && p->containsFloat(this) && !p->isFloatingOrPositioned();
+ p && !p->isCanvas() && p->containsFloat(this) && !p->isFloatingOrPositioned();
outermostBlock = p, p = p->containingBlock());
if (outermostBlock)
outermostBlock->markAllDescendantsWithFloatsForLayout(this);
@@ -1175,7 +1175,7 @@ void RenderObject::detach(RenderArena* renderArena)
// If we're an overflow:hidden object that currently needs layout, we need
// to make sure the view isn't holding on to us.
if (needsLayout() && style()->hidesOverflow()) {
- RenderRoot* r = root();
+ RenderCanvas* r = canvas();
if (r && r->view()->layoutObject() == this)
r->view()->unscheduleRelayout();
}
@@ -1291,7 +1291,7 @@ bool RenderObject::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty,
int ty = _ty + yPos();
QRect boundsRect(tx, ty, width(), height());
- inside |= (style()->visibility() != HIDDEN && boundsRect.contains(_x, _y)) || isBody() || isHtml();
+ inside |= (style()->visibility() != HIDDEN && boundsRect.contains(_x, _y)) || isBody() || isRoot();
bool inOverflowRect = inside;
if (!inOverflowRect) {
QRect overflowRect(tx, ty, overflowWidth(false), overflowHeight(false));
@@ -1301,7 +1301,7 @@ bool RenderObject::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty,
// ### table should have its own, more performant method
if ((!isRenderBlock() ||
!static_cast<RenderBlock*>(this)->isPointInScrollbar(_x, _y, _tx, _ty)) &&
- (overhangingContents() || inOverflowRect || isInline() || isRoot() ||
+ (overhangingContents() || inOverflowRect || isInline() || isCanvas() ||
isTableRow() || isTableSection() || inside || mouseInside() ||
(childrenInline() && firstChild() && firstChild()->isCompact()))) {
int stx = _tx + xPos();
@@ -1498,8 +1498,8 @@ void RenderObject::recalcMinMaxWidths()
void RenderObject::scheduleRelayout(RenderObject* clippedObj)
{
- if (!isRoot()) return;
- KHTMLView *view = static_cast<RenderRoot *>(this)->view();
+ if (!isCanvas()) return;
+ KHTMLView *view = static_cast<RenderCanvas *>(this)->view();
if ( view )
view->scheduleRelayout(clippedObj);
}
diff --git a/WebCore/khtml/rendering/render_object.h b/WebCore/khtml/rendering/render_object.h
index 73c15b6..52eebd1 100644
--- a/WebCore/khtml/rendering/render_object.h
+++ b/WebCore/khtml/rendering/render_object.h
@@ -84,7 +84,7 @@ namespace khtml {
class RenderStyle;
class RenderTable;
class CachedObject;
- class RenderRoot;
+ class RenderCanvas;
class RenderText;
class RenderFrameSet;
class RenderLayer;
@@ -183,9 +183,9 @@ public:
virtual bool isListItem() const { return false; }
virtual bool isListMarker() const { return false; }
- virtual bool isRoot() const { return false; }
+ virtual bool isCanvas() const { return false; }
+ bool isRoot() const { return parent() && parent()->isCanvas(); }
virtual bool isBR() const { return false; }
- virtual bool isHtml() const { return false; }
virtual bool isTableCell() const { return false; }
virtual bool isTableRow() const { return false; }
virtual bool isTableSection() const { return false; }
@@ -219,7 +219,7 @@ public:
bool isSelectionBorder() const { return m_isSelectionBorder; }
bool recalcMinMax() const { return m_recalcMinMax; }
- RenderRoot* root() const;
+ RenderCanvas* canvas() const;
// don't even think about making this method virtual!
DOM::NodeImpl* element() const { return m_node; }
@@ -632,7 +632,7 @@ private:
// note: do not add unnecessary bitflags, we have 32 bit already!
friend class RenderListItem;
friend class RenderContainer;
- friend class RenderRoot;
+ friend class RenderCanvas;
};
diff --git a/WebCore/khtml/rendering/render_replaced.cpp b/WebCore/khtml/rendering/render_replaced.cpp
index 5cb81df..443a5f2 100644
--- a/WebCore/khtml/rendering/render_replaced.cpp
+++ b/WebCore/khtml/rendering/render_replaced.cpp
@@ -22,7 +22,7 @@
*
*/
#include "render_replaced.h"
-#include "render_root.h"
+#include "render_canvas.h"
#include "render_arena.h"
diff --git a/WebCore/khtml/rendering/render_table.cpp b/WebCore/khtml/rendering/render_table.cpp
index 68a18b3..41e4462 100644
--- a/WebCore/khtml/rendering/render_table.cpp
+++ b/WebCore/khtml/rendering/render_table.cpp
@@ -284,7 +284,7 @@ void RenderTable::layout()
{
RenderObject* c = containingBlock();
for ( ;
- !c->isRoot() && !c->isBody() && !c->isTableCell() && !c->isPositioned() && !c->isFloating();
+ !c->isCanvas() && !c->isBody() && !c->isTableCell() && !c->isPositioned() && !c->isFloating();
c = c->containingBlock()) {
Length ch = c->style()->height();
if (ch.isFixed()) {
diff --git a/WebCore/khtml/rendering/render_text.cpp b/WebCore/khtml/rendering/render_text.cpp
index cb70f64..151deae 100644
--- a/WebCore/khtml/rendering/render_text.cpp
+++ b/WebCore/khtml/rendering/render_text.cpp
@@ -24,9 +24,8 @@
//#define DEBUG_LAYOUT
//#define BIDI_DEBUG
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "rendering/render_text.h"
-#include "rendering/render_root.h"
#include "rendering/break_lines.h"
#include "xml/dom_nodeimpl.h"
#include "xml/dom_docimpl.h"
@@ -651,12 +650,12 @@ void RenderText::paintObject(QPainter *p, int /*x*/, int y, int /*w*/, int h,
if (ty+lh+s->m_y > y+h)
{
- RenderRoot *rootObj = root();
- if (ty+s->m_y < rootObj->truncatedAt())
+ RenderCanvas* canvasObj = canvas();
+ if (ty+s->m_y < canvasObj->truncatedAt())
#if APPLE_CHANGES
- rootObj->setBestTruncatedAt(ty+s->m_y, this);
+ canvasObj->setBestTruncatedAt(ty+s->m_y, this);
#else
- rootObj->setTruncatedAt(ty+s->m_y);
+ canvasObj->setTruncatedAt(ty+s->m_y);
#endif
// Let's stop here.
break;
diff --git a/WebCore/khtml/rendering/table_layout.cpp b/WebCore/khtml/rendering/table_layout.cpp
index 47d22a1..50fdef5 100644
--- a/WebCore/khtml/rendering/table_layout.cpp
+++ b/WebCore/khtml/rendering/table_layout.cpp
@@ -543,7 +543,7 @@ static bool shouldScaleColumns(RenderTable* table)
Length tw = table->style()->width();
if ((tw.isVariable() || tw.isPercent()) && !table->isPositioned()) {
RenderBlock* cb = table->containingBlock();
- while (cb && !cb->isRoot() && !cb->isTableCell() &&
+ while (cb && !cb->isCanvas() && !cb->isTableCell() &&
cb->style()->width().isVariable() && !cb->isPositioned())
cb = cb->containingBlock();
diff --git a/WebCore/khtml/xml/dom_docimpl.cpp b/WebCore/khtml/xml/dom_docimpl.cpp
index 3f689ea..385dca3 100644
--- a/WebCore/khtml/xml/dom_docimpl.cpp
+++ b/WebCore/khtml/xml/dom_docimpl.cpp
@@ -43,7 +43,7 @@
#include <kdebug.h>
#include <kstaticdeleter.h>
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "rendering/render_replaced.h"
#include "rendering/render_image.h"
#include "render_arena.h"
@@ -1012,7 +1012,7 @@ void DocumentImpl::attach()
m_renderArena = new RenderArena();
// Create the rendering tree
- m_render = new (m_renderArena) RenderRoot(this, m_view);
+ m_render = new (m_renderArena) RenderCanvas(this, m_view);
m_styleSelector->computeFontSizes(paintDeviceMetrics(), m_view ? m_view->part()->zoomFactor() : 100);
recalcStyle( Force );
@@ -1076,13 +1076,13 @@ void DocumentImpl::setSelection(NodeImpl* s, int sp, NodeImpl* e, int ep)
setFocusNode(0);
#endif
if ( m_render )
- static_cast<RenderRoot*>(m_render)->setSelection(s->renderer(),sp,e->renderer(),ep);
+ static_cast<RenderCanvas*>(m_render)->setSelection(s->renderer(),sp,e->renderer(),ep);
}
void DocumentImpl::clearSelection()
{
if ( m_render )
- static_cast<RenderRoot*>(m_render)->clearSelection();
+ static_cast<RenderCanvas*>(m_render)->clearSelection();
}
Tokenizer *DocumentImpl::createTokenizer()
@@ -1545,7 +1545,7 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con
bool DocumentImpl::prepareMouseEvent( bool readonly, int _x, int _y, MouseEvent *ev )
{
if ( m_render ) {
- assert(m_render->isRoot());
+ assert(m_render->isCanvas());
RenderObject::NodeInfo renderInfo(readonly, ev->type == MousePress);
bool isInside = m_render->layer()->nodeAtPoint(renderInfo, _x, _y);
ev->innerNode = renderInfo.innerNode();
diff --git a/WebCore/khtml/xml/dom_elementimpl.cpp b/WebCore/khtml/xml/dom_elementimpl.cpp
index 1fb4199..da237ec 100644
--- a/WebCore/khtml/xml/dom_elementimpl.cpp
+++ b/WebCore/khtml/xml/dom_elementimpl.cpp
@@ -33,7 +33,7 @@
#include "html/dtd.h"
#include "html/htmlparser.h"
-#include "rendering/render_root.h"
+#include "rendering/render_canvas.h"
#include "misc/htmlhashes.h"
#include "css/css_valueimpl.h"
#include "css/css_stylesheetimpl.h"
@@ -314,6 +314,14 @@ RenderStyle *ElementImpl::styleForRenderer(RenderObject *parentRenderer)
RenderObject *ElementImpl::createRenderer(RenderArena *arena, RenderStyle *style)
{
+ if (getDocument()->documentElement() == this) {
+ // FIXME: We're a root object. For now, force a display of block.
+ if (style->display() != NONE)
+ style->setDisplay(BLOCK);
+ RenderBlock* result = new (arena) RenderBlock(this);
+ if (result) result->setStyle(style);
+ return result;
+ }
return RenderObject::createObject(this, style);
}
diff --git a/WebCore/khtml/xml/dom_nodeimpl.cpp b/WebCore/khtml/xml/dom_nodeimpl.cpp
index c2ef3ca..3a7e671 100644
--- a/WebCore/khtml/xml/dom_nodeimpl.cpp
+++ b/WebCore/khtml/xml/dom_nodeimpl.cpp
@@ -1043,7 +1043,7 @@ RenderStyle *NodeImpl::styleForRenderer(RenderObject *parent)
bool NodeImpl::rendererIsNeeded(RenderStyle *style)
{
- return style->display() != NONE;
+ return (getDocument()->documentElement() == this) || (style->display() != NONE);
}
RenderObject *NodeImpl::createRenderer(RenderArena *arena, RenderStyle *style)
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index e3f59a6..4d9dead 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -27,7 +27,7 @@
#import "htmltokenizer.h"
#import "html_documentimpl.h"
-#import "render_root.h"
+#import "render_canvas.h"
#import "render_frames.h"
#import "render_table.h"
#import "render_text.h"
@@ -69,7 +69,7 @@ using khtml::MousePressEvent;
using khtml::MouseReleaseEvent;
using khtml::RenderObject;
using khtml::RenderPart;
-using khtml::RenderRoot;
+using khtml::RenderCanvas;
using khtml::RenderStyle;
using khtml::RenderText;
using khtml::RenderWidget;
@@ -742,7 +742,7 @@ void KWQKHTMLPart::paintSelectionOnly(QPainter *p, const QRect &rect)
void KWQKHTMLPart::adjustPageHeight(float *newBottom, float oldTop, float oldBottom, float bottomLimit)
{
- RenderRoot *root = static_cast<khtml::RenderRoot *>(xmlDocImpl()->renderer());
+ RenderCanvas *root = static_cast<khtml::RenderCanvas *>(xmlDocImpl()->renderer());
if (root) {
// Use a printer device, with painting disabled for the pagination phase
QPainter painter(true);
@@ -1145,7 +1145,7 @@ void KWQKHTMLPart::forceLayoutForPageWidth(float pageWidth)
{
// Dumping externalRepresentation(_part->renderer()).ascii() is a good trick to see
// the state of things before and after the layout
- RenderRoot *root = static_cast<khtml::RenderRoot *>(xmlDocImpl()->renderer());
+ RenderCanvas *root = static_cast<khtml::RenderCanvas *>(xmlDocImpl()->renderer());
if (root) {
// This magic is basically copied from khtmlview::print
root->setWidth((int)ceil(pageWidth));
@@ -1881,7 +1881,7 @@ QRect KWQKHTMLPart::selectionRect() const
return QRect();
}
- RenderRoot *root = static_cast<RenderRoot *>(xmlDocImpl()->renderer());
+ RenderCanvas *root = static_cast<RenderCanvas *>(xmlDocImpl()->renderer());
if (!root) {
return QRect();
diff --git a/WebCore/kwq/WebCoreBridge.mm b/WebCore/kwq/WebCoreBridge.mm
index 530de20..3c49e64 100644
--- a/WebCore/kwq/WebCoreBridge.mm
+++ b/WebCore/kwq/WebCoreBridge.mm
@@ -39,7 +39,7 @@
#import "render_frames.h"
#import "render_image.h"
#import "render_object.h"
-#import "render_root.h"
+#import "render_canvas.h"
#import "render_style.h"
#import "render_replaced.h"
using khtml::RenderWidget;
@@ -73,7 +73,7 @@ using khtml::RenderImage;
using khtml::RenderObject;
using khtml::RenderPart;
using khtml::RenderStyle;
-using khtml::RenderRoot;
+using khtml::RenderCanvas;
using KJS::SavedProperties;
@@ -338,7 +338,7 @@ static BOOL nowPrinting(WebCoreBridge *self)
- (void)_setupRootForPrinting:(BOOL)onOrOff
{
if (nowPrinting(self)) {
- RenderRoot *root = static_cast<khtml::RenderRoot *>(_part->xmlDocImpl()->renderer());
+ RenderCanvas *root = static_cast<khtml::RenderCanvas *>(_part->xmlDocImpl()->renderer());
if (root) {
root->setPrintingMode(onOrOff);
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list