SVN commit 873675 by ggarand: automatically merged revision 869765: argh. Forgotten files - part of "HTML Frame fixes" commit. M +14 -48 rendering/render_replaced.cpp M +0 -6 rendering/render_replaced.h M +0 -4 rendering/render_table.cpp M +0 -1 test_regression.cpp --- branches/KDE/4.1/kdelibs/khtml/rendering/render_replaced.cpp #873674:873675 @@ -194,8 +194,6 @@ assert(!isAnonymous()); m_view = node->document()->view(); m_arena.reset(renderArena()); - m_resizePending = false; - m_discardResizes = false; m_needsMask = false; m_ownsWidget = true; @@ -262,60 +260,29 @@ w = qMin( w, 2000 ); if (m_widget->width() != w || m_widget->height() != h) { - if (isRedirectedWidget() && qobject_cast(m_widget)) { - m_widget->resize( w, h); - if (!m_widget->isVisible()) { - // Emission of Resize event is delayed. - // we have to pre-call KHTMLView::resizeEvent - // so that viewport size change and subsequent layout update - // is effective synchronously, which is important for JS. - // This only work because m_widget is a redirected view, - // and thus has visibleWidth()/visibleHeight() that mirror this RenderWidget, - // rather than the effective widget size. - gg. - QResizeEvent e( QSize(w,h), QSize(m_widget->width(),m_widget->height())); - static_cast(m_widget)->resizeEvent( &e ); - } - } else { - m_resizePending = isRedirectedWidget(); - ref(); - element()->ref(); - QApplication::postEvent( this, new QWidgetResizeEvent( w, h ) ); - element()->deref(); - deref(); - } - } + m_widget->resize( w, h); + if (isRedirectedWidget() && qobject_cast(m_widget) && !m_widget->isVisible()) { + // Emission of Resize event is delayed. + // we have to pre-call KHTMLView::resizeEvent + // so that viewport size change and subsequent layout update + // is effective synchronously, which is important for JS. + // This only work because m_widget is a redirected view, + // and thus has visibleWidth()/visibleHeight() that mirror this RenderWidget, + // rather than the effective widget size. - gg. + QResizeEvent e( QSize(w,h), QSize(m_widget->width(),m_widget->height())); + static_cast(m_widget)->resizeEvent( &e ); + } + } } -void RenderWidget::cancelPendingResize() -{ - if (!m_widget) - return; - m_discardResizes = true; - QApplication::sendPostedEvents(this, QWidgetResizeEvent::Type); - m_discardResizes = false; -} - bool RenderWidget::event( QEvent *e ) { - if ( m_widget && (e->type() == (QEvent::Type)QWidgetResizeEvent::Type) ) { - m_resizePending = false; - if (m_discardResizes) - return true; - QWidgetResizeEvent *re = static_cast(e); - m_widget->resize( re->w, re->h ); - repaint(); - } // eat all events - except if this is a frame (in which case KHTMLView handles it all) if ( qobject_cast( m_widget ) ) return QObject::event( e ); return true; } -void RenderWidget::flushWidgetResizes() //static -{ - QApplication::sendPostedEvents( 0, QWidgetResizeEvent::Type ); -} - bool RenderWidget::isRedirectedWidget() const { KHTMLWidget* k = dynamic_cast(m_widget); @@ -372,7 +339,6 @@ m_widget->move(0, -500000); m_widget->hide(); } - m_resizePending = false; } } @@ -591,7 +557,7 @@ return; // not visible or not even once layouted - if (style()->visibility() != VISIBLE || m_y <= -500000 || m_resizePending ) + if (style()->visibility() != VISIBLE || m_y <= -500000) return; if ( (_ty > paintInfo.r.bottom()) || (_ty + m_height <= paintInfo.r.top()) || --- branches/KDE/4.1/kdelibs/khtml/rendering/render_replaced.h #873674:873675 @@ -99,7 +99,6 @@ void deref(); - void cancelPendingResize(); bool needsMask() const { return m_needsMask; } static void paintWidget(PaintInfo& pI, QWidget *widget, int tx, int ty, QPixmap* buffer[] = 0); @@ -112,9 +111,6 @@ virtual void dump(QTextStream &stream, const QString &ind) const; #endif - // for ECMA to flush all pending resizes - KHTML_EXPORT static void flushWidgetResizes(); - public Q_SLOTS: void slotWidgetDestructed(); @@ -156,8 +152,6 @@ //so it doesn't get yanked from us, etc. SharedPtr m_arena; - bool m_resizePending; - bool m_discardResizes; bool m_needsMask; bool m_ownsWidget; --- branches/KDE/4.1/kdelibs/khtml/rendering/render_table.cpp #873674:873675 @@ -1556,10 +1556,6 @@ bool didFlex = false; while (o) { if (!o->isText() && o->style()->height().isPercent()) { - if (o->isWidget()) { - // cancel resizes from transitory relayouts - static_cast(o)->cancelPendingResize(); - } o->setNeedsLayout(true, false); p->setChildNeedsLayout(true, false); didFlex = true; --- branches/KDE/4.1/kdelibs/khtml/test_regression.cpp #873674:873675 @@ -340,7 +340,6 @@ void PartMonitor::partCompleted() { m_completed = true; - RenderWidget::flushWidgetResizes(); m_timeout_timer->stop(); connect(m_timeout_timer, SIGNAL(timeout()),this, SLOT( timeout() ) ); m_timeout_timer->setSingleShot(true);