SVN commit 861088 by ggarand: automatically merged revision 861056: .tighten a bit the scroll rectangle .always do ourselves the scrolling of external widgets. M +15 -9 khtmlview.cpp --- branches/KDE/4.1/kdelibs/khtml/khtmlview.cpp #861087:861088 @@ -335,6 +335,18 @@ contentsY = view->verticalScrollBar()->value(); } + void scrollExternalWidgets(int dx, int dy) + { + if (visibleWidgets.isEmpty()) + return; + + QHashIterator it(visibleWidgets); + while (it.hasNext()) { + it.next(); + it.value()->move( it.value()->pos() + QPoint(dx, dy) ); + } + } + #ifdef DEBUG_PIXEL QTime timer; unsigned int pixelbooth; @@ -3861,14 +3873,7 @@ for (int i = 0; i < ar.size() ; ++i) { w->scroll( dx, dy, ar[i].translated(off) ); } - // scroll external widgets - if (!d->visibleWidgets.isEmpty()) { - QHashIterator it(d->visibleWidgets); - while (it.hasNext()) { - it.next(); - it.value()->move( it.value()->pos() + QPoint(dx, dy) ); - } - } + d->scrollExternalWidgets(dx, dy); } else // we can't avoid a full update widget()->update(); @@ -3879,8 +3884,9 @@ if (m_kwp->isRedirected()) { w->scroll(dx, dy, QRect(off.x(), off.y(), visibleWidth(), visibleHeight())); } else { - widget()->scroll(dx, dy); + widget()->scroll(dx, dy, widget()->rect() & viewport()->rect()); } + d->scrollExternalWidgets(dx, dy); } void KHTMLView::setupSmoothScrolling(int dx, int dy)