From 9bc149176094c1b4600ff0d48fe042b40e739284 Mon Sep 17 00:00:00 2001 From: "jwatt%jwatt.org" Date: Tue, 6 Sep 2005 19:22:13 +0000 Subject: [PATCH] Fixing bug 282217. SVG doesn't have the same effect as <html:title>. r+sr=bzbarsky@mit.edu, a=asa@mozilla.org git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@179713 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xml/document/src/nsXMLContentSink.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mozilla/content/xml/document/src/nsXMLContentSink.cpp b/mozilla/content/xml/document/src/nsXMLContentSink.cpp index f5fccc1b3a7..1676045639b 100644 --- a/mozilla/content/xml/document/src/nsXMLContentSink.cpp +++ b/mozilla/content/xml/document/src/nsXMLContentSink.cpp @@ -448,6 +448,16 @@ nsXMLContentSink::CreateElement(const PRUnichar** aAtts, PRUint32 aAttsCount, mInTitle = PR_TRUE; // The first title wins } } +#ifdef MOZ_SVG + else if (aNodeInfo->Equals(nsSVGAtoms::title, kNameSpaceID_SVG)) { + nsIContent* parent = GetCurrentContent(); + if (mDocument && mDocument->GetDocumentTitle().IsVoid() && + parent && parent == mDocElement && + parent->GetNodeInfo()->Equals(nsSVGAtoms::svg, kNameSpaceID_SVG)) { + mInTitle = PR_TRUE; // The first title wins + } + } +#endif // MOZ_SVG else if (aNodeInfo->Equals(nsHTMLAtoms::link, kNameSpaceID_XHTML) || aNodeInfo->Equals(nsHTMLAtoms::style, kNameSpaceID_XHTML) || aNodeInfo->Equals(nsHTMLAtoms::style, kNameSpaceID_SVG)) { @@ -508,8 +518,11 @@ nsXMLContentSink::CloseElement(nsIContent* aContent, nsIContent* aParent, return rv; } - if (nodeInfo->Equals(nsHTMLAtoms::title, kNameSpaceID_XHTML) && - mInTitle) { + if ((nodeInfo->Equals(nsHTMLAtoms::title, kNameSpaceID_XHTML) +#ifdef MOZ_SVG + || nodeInfo->Equals(nsSVGAtoms::title, kNameSpaceID_SVG) +#endif // MOZ_SVG + ) && mInTitle) { NS_ASSERTION(mDocument, "How did mInTitle get to be true if mDocument is null?"); // The first title wins nsCOMPtr<nsIDOMNSDocument> dom_doc(do_QueryInterface(mDocument));