本文整理汇总了C++中HTMLPlugInImageElement::setNeedsCheckForSizeChange方法的典型用法代码示例。如果您正苦于以下问题:C++ HTMLPlugInImageElement::setNeedsCheckForSizeChange方法的具体用法?C++ HTMLPlugInImageElement::setNeedsCheckForSizeChange怎么用?C++ HTMLPlugInImageElement::setNeedsCheckForSizeChange使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTMLPlugInImageElement
的用法示例。
在下文中一共展示了HTMLPlugInImageElement::setNeedsCheckForSizeChange方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: layout
void RenderEmbeddedObject::layout()
{
StackStats::LayoutCheckPoint layoutCheckPoint;
ASSERT(needsLayout());
LayoutSize oldSize = contentBoxRect().size();
updateLogicalWidth();
updateLogicalHeight();
RenderPart::layout();
m_overflow.clear();
addVisualEffectOverflow();
updateLayerTransform();
bool wasMissingWidget = false;
if (!widget() && frameView() && canHaveWidget()) {
wasMissingWidget = true;
frameView()->addWidgetToUpdate(this);
}
setNeedsLayout(false);
LayoutSize newSize = contentBoxRect().size();
if (!wasMissingWidget && newSize.width() >= oldSize.width() && newSize.height() >= oldSize.height()) {
Element* element = toElement(node());
if (element && element->isPluginElement() && toHTMLPlugInElement(element)->isPlugInImageElement()) {
HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(element);
if (plugInImageElement->displayState() > HTMLPlugInElement::DisplayingSnapshot && plugInImageElement->snapshotDecision() == HTMLPlugInImageElement::MaySnapshotWhenResized && document()->view()) {
plugInImageElement->setNeedsCheckForSizeChange();
document()->view()->addWidgetToUpdate(this);
}
}
}
if (!canHaveChildren())
return;
// This code copied from RenderMedia::layout().
RenderObject* child = m_children.firstChild();
if (!child)
return;
RenderBox* childBox = toRenderBox(child);
if (!childBox)
return;
if (newSize == oldSize && !childBox->needsLayout())
return;
// When calling layout() on a child node, a parent must either push a LayoutStateMaintainter, or
// instantiate LayoutStateDisabler. Since using a LayoutStateMaintainer is slightly more efficient,
// and this method will be called many times per second during playback, use a LayoutStateMaintainer:
LayoutStateMaintainer statePusher(view(), this, locationOffset(), hasTransform() || hasReflection() || style()->isFlippedBlocksWritingMode());
childBox->setLocation(LayoutPoint(borderLeft(), borderTop()) + LayoutSize(paddingLeft(), paddingTop()));
childBox->style()->setHeight(Length(newSize.height(), Fixed));
childBox->style()->setWidth(Length(newSize.width(), Fixed));
childBox->setNeedsLayout(true, MarkOnlyThis);
childBox->layout();
setChildNeedsLayout(false);
statePusher.pop();
}