LayoutPoint RenderTheme::volumeSliderOffsetFromMuteButton(const RenderBox& muteButtonBox, const LayoutSize& size) const { LayoutUnit y = -size.height(); FloatPoint absPoint = muteButtonBox.localToAbsolute(FloatPoint(muteButtonBox.offsetLeft(), y), IsFixed | UseTransforms); if (absPoint.y() < 0) y = muteButtonBox.height(); return LayoutPoint(0, y); }
void RenderMediaVolumeSliderContainer::layout() { RenderBlock::layout(); if (style()->display() == NONE || !nextSibling() || !nextSibling()->isBox()) return; RenderBox* buttonBox = toRenderBox(nextSibling()); int absoluteOffsetTop = buttonBox->localToAbsolute(FloatPoint(0, -size().height())).y(); LayoutStateDisabler layoutStateDisabler(view()); // If the slider would be rendered outside the page, it should be moved below the controls. if (UNLIKELY(absoluteOffsetTop < 0)) setY(buttonBox->offsetTop() + theme()->volumeSliderOffsetFromMuteButton(buttonBox, pixelSnappedSize()).y()); }