Project

General

Profile

Bug #6014 » 0001-Layout-oscillation-fix-for-w-WPaintedWidget-Areas.patch

Bruce Toll, 10/17/2017 05:04 PM

View differences:

src/Wt/WContainerWidget.C
children_.insert(children_.begin() + index, widget.get());
addChild(std::move(widget));
flags_.set(BIT_ADJUST_CHILDREN_ALIGN); // children margins hacks
repaint(RepaintFlag::SizeAffected);
if ((domElementType() != DomElementType::MAP) &&
(domElementType() != DomElementType::AREA))
repaint(RepaintFlag::SizeAffected);
else
repaint();
widgetAdded(w);
}
......
std::unique_ptr<WWidget> result
= Utils::dynamic_unique_ptr_cast<WWidget>(removeChild(widget));
repaint(RepaintFlag::SizeAffected);
if ((domElementType() != DomElementType::MAP) &&
(domElementType() != DomElementType::AREA))
repaint(RepaintFlag::SizeAffected);
else
repaint();
widgetRemoved(widget, renderRemove);
src/Wt/WPaintedWidget.C
renderWidth_ = width;
renderHeight_ = height;
if (areaImage_)
if (areaImage_ && !layoutSizeAware())
areaImage_->resize(renderWidth_, renderHeight_);
sizeChanged_ = true;
src/Wt/WWebWidget.C
if (js[0] != '_')
transientImpl_->specialChildRemove_ = true;
repaint(RepaintFlag::SizeAffected);
if ((domElementType() != DomElementType::MAP) &&
(domElementType() != DomElementType::AREA))
repaint(RepaintFlag::SizeAffected);
else
repaint();
}
child->setParentWidget(nullptr);
(3-3/3)