Project

General

Profile

Feature #1348 » a-span-patch.diff

Jake Petroules, 07/10/2012 09:03 AM

View differences:

src/Wt/WAnchor.C
if (link_.type() != WLink::Resource && link_ == link)
return;
if (link_.isNull())
flags_.set(BIT_CHANGE_TAG);
link_ = link;
flags_.set(BIT_LINK_CHANGED);
......
void WAnchor::updateDom(DomElement& element, bool all)
{
if (element.type() != DomElement_A) {
WContainerWidget::updateDom(element, all);
return;
}
if (flags_.test(BIT_CHANGE_TAG)) {
if (!all)
element.callJavaScript(WT_CLASS ".changeTag(" + jsRef() + ",'a');");
flags_.reset(BIT_CHANGE_TAG);
}
bool needsUrlResolution = false;
if (flags_.test(BIT_LINK_CHANGED) || all) {
......
url = app->encodeUntrustedUrl(url);
std::string href = resolveRelativeUrl(url);
element.setAttribute("href", href);
if (link_.isNull())
element.removeAttribute("href");
else
element.setAttribute("href", href);
needsUrlResolution = !app->environment().hashInternalPaths()
&& href.find("://") == std::string::npos && href[0] != '/';
needsUrlResolution = link_.isNull() ? false : (!app->environment().hashInternalPaths()
&& href.find("://") == std::string::npos && href[0] != '/');
flags_.reset(BIT_LINK_CHANGED);
}
......
DomElementType WAnchor::domElementType() const
{
return link_.isNull() ? WContainerWidget::domElementType() : DomElement_A;
return DomElement_A;
}
}
(2-2/2)