void RenderSliderContainer::layout() { HTMLInputElement* input = node()->shadowAncestorNode()->toInputElement(); bool isVertical = hasVerticalAppearance(input); style()->setBoxOrient(isVertical ? VERTICAL : HORIZONTAL); // Sets the concrete height if the height of the <input> is not fixed or a // percentage value because a percentage height value of this box won't be // based on the <input> height in such case. Length inputHeight = input->renderer()->style()->height(); RenderObject* trackRenderer = node()->firstChild()->renderer(); if (!isVertical && input->renderer()->isSlider() && !inputHeight.isFixed() && !inputHeight.isPercent()) { RenderObject* thumbRenderer = input->shadowTree()->oldestShadowRoot()->firstChild()->firstChild()->firstChild()->renderer(); if (thumbRenderer) { style()->setHeight(thumbRenderer->style()->height()); if (trackRenderer) trackRenderer->style()->setHeight(thumbRenderer->style()->height()); } } else { style()->setHeight(Length(100, Percent)); if (trackRenderer) trackRenderer->style()->setHeight(Length()); } RenderDeprecatedFlexibleBox::layout(); // Percentage 'top' for the thumb doesn't work if the parent style has no // concrete height. Node* track = node()->firstChild(); if (track && track->renderer()->isBox()) { RenderBox* trackBox = track->renderBox(); trackBox->style()->setHeight(Length(trackBox->height() - trackBox->borderAndPaddingHeight(), Fixed)); } }
void RenderTextControl::computeLogicalHeight() { HTMLElement* innerText = innerTextElement(); ASSERT(innerText); RenderBox* innerTextBox = innerText->renderBox(); LayoutUnit nonContentHeight = innerTextBox->borderAndPaddingHeight() + innerTextBox->marginHeight(); setHeight(computeControlHeight(innerTextBox->lineHeight(true, HorizontalLine, PositionOfInteriorLineBoxes), nonContentHeight) + borderAndPaddingHeight()); // We are able to have a horizontal scrollbar if the overflow style is scroll, or if its auto and there's no word wrap. if (style()->overflowX() == OSCROLL || (style()->overflowX() == OAUTO && innerText->renderer()->style()->wordWrap() == NormalWordWrap)) setHeight(height() + scrollbarThickness()); RenderBlock::computeLogicalHeight(); }