// FIXME: This should not be necessary. Remove this once WebKit knows to properly schedule // layouts using WebCore when objects resize. void RenderPart::updateWidgetPositions() { if (!m_widget) return; #if KWIQ return; #endif int x, y, width, height; absolutePosition(x,y); x += borderLeft() + paddingLeft(); y += borderTop() + paddingTop(); width = m_width - borderLeft() - borderRight() - paddingLeft() - paddingRight(); height = m_height - borderTop() - borderBottom() - paddingTop() - paddingBottom(); QRect newBounds(x,y,width,height); if (newBounds != m_widget->frameGeometry()) { // The widget changed positions. Update the frame geometry. RenderArena *arena = ref(); element()->ref(); m_widget->setFrameGeometry(newBounds); element()->deref(); deref(arena); QScrollView *view = static_cast<QScrollView *>(m_widget); if (view && view->inherits("KHTMLView")) static_cast<KHTMLView*>(view)->layout(); } }
void RenderFrame::slotViewCleared() { if(element() && m_widget->inherits("QScrollView")) { #ifdef DEBUG_LAYOUT kdDebug(6031) << "frame is a scrollview!" << endl; #endif QScrollView *view = static_cast<QScrollView *>(m_widget); if(!element()->frameBorder || !((static_cast<HTMLFrameSetElementImpl *>(element()->parentNode()))->frameBorder())) view->setFrameStyle(QFrame::NoFrame); #if APPLE_CHANGES // Qt creates QScrollView w/ a default style of QFrame::StyledPanel | QFrame::Sunken. else view->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken ); #else view->setHScrollBarMode(element()->scrolling ); view->setVScrollBarMode(element()->scrolling ); #endif if(view->inherits("KHTMLView")) { #ifdef DEBUG_LAYOUT kdDebug(6031) << "frame is a KHTMLview!" << endl; #endif KHTMLView *htmlView = static_cast<KHTMLView *>(view); if(element()->marginWidth != -1) htmlView->setMarginWidth(element()->marginWidth); if(element()->marginHeight != -1) htmlView->setMarginHeight(element()->marginHeight); } } }
void RenderPartObject::slotViewCleared() { if(element() && m_widget->inherits("QScrollView") ) { #ifdef DEBUG_LAYOUT kdDebug(6031) << "iframe is a scrollview!" << endl; #endif QScrollView *view = static_cast<QScrollView *>(m_widget); int frameStyle = QFrame::NoFrame; QScrollView::ScrollBarMode scroll = QScrollView::Auto; int marginw = -1; int marginh = -1; if ( element()->id() == ID_IFRAME) { HTMLIFrameElementImpl *frame = static_cast<HTMLIFrameElementImpl *>(element()); if(frame->frameBorder) frameStyle = QFrame::Box; scroll = frame->scrolling; marginw = frame->marginWidth; marginh = frame->marginHeight; } view->setFrameStyle(frameStyle); #if !APPLE_CHANGES view->setVScrollBarMode(scroll); view->setHScrollBarMode(scroll); #endif if(view->inherits("KHTMLView")) { #ifdef DEBUG_LAYOUT kdDebug(6031) << "frame is a KHTMLview!" << endl; #endif KHTMLView *htmlView = static_cast<KHTMLView *>(view); htmlView->setIgnoreWheelEvents( element()->id() == ID_IFRAME ); if(marginw != -1) htmlView->setMarginWidth(marginw); if(marginh != -1) htmlView->setMarginHeight(marginh); } } }