summaryrefslogtreecommitdiffstats
path: root/src/htmldocvisitor.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-03-10 18:16:51 (GMT)
committerGitHub <noreply@github.com>2019-03-10 18:16:51 (GMT)
commit99a6b3dfd10e239fd7723439c82124b82b537a67 (patch)
tree804f298b370243d96c7489a4263ebea8242bf961 /src/htmldocvisitor.cpp
parent0cacf4e6cdf4c4fd895b92e351d55b0f16472186 (diff)
parenta735007427439b73327af0c8cfa003423bcdef6e (diff)
downloadDoxygen-99a6b3dfd10e239fd7723439c82124b82b537a67.zip
Doxygen-99a6b3dfd10e239fd7723439c82124b82b537a67.tar.gz
Doxygen-99a6b3dfd10e239fd7723439c82124b82b537a67.tar.bz2
Merge pull request #6861 from albert-github/feature/bug_html_attributes
Multiple use of HTML attributes
Diffstat (limited to 'src/htmldocvisitor.cpp')
-rw-r--r--src/htmldocvisitor.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 9bd0b4f..37f6bd0 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -211,6 +211,34 @@ static bool isInvisibleNode(DocNode *node)
;
}
+static void mergeHtmlAttributes(const HtmlAttribList &attribs, HtmlAttribList *mergeInto)
+{
+ HtmlAttribListIterator li(attribs);
+ HtmlAttrib *att;
+ for (li.toFirst();(att=li.current());++li)
+ {
+ HtmlAttribListIterator ml(*mergeInto);
+ HtmlAttrib *opt;
+ bool found = false;
+ for (ml.toFirst();(opt=ml.current());++ml)
+ {
+ if (opt->name == att -> name)
+ {
+ found = true;
+ break;
+ }
+ }
+ if (found)
+ {
+ opt->value = opt->value + " " + att->value;
+ }
+ else
+ {
+ mergeInto->append(att);
+ }
+ }
+}
+
static QCString htmlAttribsToString(const HtmlAttribList &attribs, QCString *pAltValue = 0)
{
QCString result;
@@ -1660,8 +1688,18 @@ void HtmlDocVisitor::visitPre(DocImage *img)
sizeAttribs+=" height=\""+img->height()+"\"";
}
// 16 cases: url.isEmpty() | typeSVG | inlineImage | img->hasCaption()
+
+ HtmlAttribList extraAttribs;
+ if (typeSVG)
+ {
+ HtmlAttrib opt;
+ opt.name = "style";
+ opt.value = "pointer-events: none;";
+ extraAttribs.append(&opt);
+ }
QCString alt;
- QCString attrs = htmlAttribsToString(img->attribs(),&alt);
+ mergeHtmlAttributes(img->attribs(),&extraAttribs);
+ QCString attrs = htmlAttribsToString(extraAttribs,&alt);
QCString src;
if (url.isEmpty())
{
@@ -1673,7 +1711,7 @@ void HtmlDocVisitor::visitPre(DocImage *img)
}
if (typeSVG)
{
- m_t << "<object type=\"image/svg+xml\" style=\"pointer-events: none;\" data=\"" << src
+ m_t << "<object type=\"image/svg+xml\" data=\"" << src
<< "\"" << sizeAttribs << attrs;
if (inlineImage)
{