[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:22:54 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit cbf33ef4bbcb0c89dbff475e3f55b1a60397d398
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 30 20:24:32 2003 +0000
Fix for 3155954. Make sure no layers get made for :before,
:after or :first-letter. The only debatable case is whether
overflow can apply to generated content. Included a FIXME
to think about that case.
Reviewed by darin
* khtml/rendering/render_container.cpp:
(RenderContainer::insertPseudoChild):
* khtml/rendering/render_flow.cpp:
(RenderFlow::addChildToFlow):
* khtml/rendering/render_text.cpp:
(RenderText::nodeAtPoint):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a9563c2..338795e 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,19 @@
+2003-01-30 David Hyatt <hyatt at apple.com>
+
+ Fix for 3155954. Make sure no layers get made for :before,
+ :after or :first-letter. The only debatable case is whether
+ overflow can apply to generated content. Included a FIXME
+ to think about that case.
+
+ Reviewed by darin
+
+ * khtml/rendering/render_container.cpp:
+ (RenderContainer::insertPseudoChild):
+ * khtml/rendering/render_flow.cpp:
+ (RenderFlow::addChildToFlow):
+ * khtml/rendering/render_text.cpp:
+ (RenderText::nodeAtPoint):
+
2003-01-30 Darin Adler <darin at apple.com>
* khtml/html/html_documentimpl.cpp: Updated license.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a9563c2..338795e 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,19 @@
+2003-01-30 David Hyatt <hyatt at apple.com>
+
+ Fix for 3155954. Make sure no layers get made for :before,
+ :after or :first-letter. The only debatable case is whether
+ overflow can apply to generated content. Included a FIXME
+ to think about that case.
+
+ Reviewed by darin
+
+ * khtml/rendering/render_container.cpp:
+ (RenderContainer::insertPseudoChild):
+ * khtml/rendering/render_flow.cpp:
+ (RenderFlow::addChildToFlow):
+ * khtml/rendering/render_text.cpp:
+ (RenderText::nodeAtPoint):
+
2003-01-30 Darin Adler <darin at apple.com>
* khtml/html/html_documentimpl.cpp: Updated license.
diff --git a/WebCore/khtml/rendering/render_container.cpp b/WebCore/khtml/rendering/render_container.cpp
index 02ec17a..f326851 100644
--- a/WebCore/khtml/rendering/render_container.cpp
+++ b/WebCore/khtml/rendering/render_container.cpp
@@ -214,18 +214,25 @@ void RenderContainer::insertPseudoChild(RenderStyle::PseudoId type, RenderObject
if (pseudo && pseudo->display() != NONE)
{
+ // From the CSS2 specification:
+ // User agents must ignore the following properties with :before and :after
+ // pseudo-elements: 'position', 'float', list properties, and table properties.
+ // Basically we need to ensure that no RenderLayer gets made for generated
+ // content.
+ pseudo->setPosition(STATIC);
+ pseudo->setFloating(FNONE);
+ pseudo->setOverflow(OVISIBLE); // FIXME: Glazman's blog does this. Wacky.
+ // This property might need to be allowed if the
+ // generated content is a block.
+
if (pseudo->contentType()==CONTENT_TEXT)
{
RenderObject* po = new (renderArena()) RenderFlow(0 /* anonymous box */);
- po->setParent(this); // Set the parent now, so setStyle will be able to find a renderArena.
po->setStyle(pseudo);
- po->setParent(0); // Unset the parent to avoid asserting in addChild.
addChild(po, beforeChild);
RenderText* t = new (renderArena()) RenderText(0 /*anonymous object */, pseudo->contentText());
- t->setParent(po); // Set the parent now, so setStyle will be able to find a renderArena.
t->setStyle(pseudo);
- t->setParent(0); // Unset the parent to avoid asserting in addChild.
po->addChild(t);
// kdDebug() << DOM::DOMString(pseudo->contentText()).string() << endl;
@@ -236,9 +243,7 @@ void RenderContainer::insertPseudoChild(RenderStyle::PseudoId type, RenderObject
else if (pseudo->contentType()==CONTENT_OBJECT)
{
RenderObject* po = new (renderArena()) RenderImage(0);
- po->setParent(this); // Set the parent now, so setStyle will be able to find a renderArena.
po->setStyle(pseudo);
- po->setParent(0); // Unset the parent to avoid asserting in addChild.
addChild(po, beforeChild);
po->close();
}
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 0e913e4..c92b763 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -2013,10 +2013,10 @@ void RenderFlow::addChildToFlow(RenderObject* newChild, RenderObject* beforeChil
if ( (pseudoStyle=style()->getPseudoStyle(RenderStyle::FIRST_LETTER)) ) {
RenderFlow* firstLetter = new (renderArena()) RenderFlow(0 /* anonymous box */);
pseudoStyle->setDisplay( INLINE );
+ pseudoStyle->setPosition( STATIC ); // CSS2 says first-letter can't be positioned.
firstLetter->setStyle(pseudoStyle);
-
addChild(firstLetter);
-
+
DOMStringImpl* oldText = newTextChild->string();
if(oldText->l >= 1) {
@@ -2028,7 +2028,7 @@ void RenderFlow::addChildToFlow(RenderObject* newChild, RenderObject* beforeChil
//kdDebug( 6040 ) << "letter= '" << DOMString(oldText->substring(0,length)).string() << "'" << endl;
newTextChild->setText(oldText->substring(length,oldText->l-length));
- RenderText* letter = new (renderArena()) RenderText(0 /* anonymous object */, oldText->substring(0,length));
+ RenderText* letter = new (renderArena()) RenderText(newTextChild->element(), oldText->substring(0,length));
RenderStyle* newStyle = new RenderStyle();
newStyle->inheritFrom(pseudoStyle);
letter->setStyle(newStyle);
diff --git a/WebCore/khtml/rendering/render_text.cpp b/WebCore/khtml/rendering/render_text.cpp
index 918b1ff..c6a0515 100644
--- a/WebCore/khtml/rendering/render_text.cpp
+++ b/WebCore/khtml/rendering/render_text.cpp
@@ -470,7 +470,7 @@ bool RenderText::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, b
setMouseInside(inside);
- if (inside) {
+ if (inside && element()) {
if (info.innerNode() && info.innerNode()->renderer() &&
!info.innerNode()->renderer()->isInline()) {
// Within the same layer, inlines are ALWAYS fully above blocks. Change inner node.
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list