Version: 4.4.00 (KDE 4.4.0) (using 4.4.00 (KDE 4.4.0), Arch Linux) Compiler: gcc OS: Linux (x86_64) release 2.6.32-ARCH Konqueror smooth scrolling worked fine until kde 4.3.4, even on hard flashed pages (myspace sites). But now, smooth scrolling on some pages is simply terrible, uncontinuos, including on www.kde.org startpage Backtrace: QPainter::viewTransformEnabled: Painter not active QPainter::worldMatrixEnabled: Painter not active QPainter::window: Painter not active QPainter::viewport: Painter not active QPainter::clipRegion: Painter not active QPainter::opacity: Painter not active QPainter::pen: Painter not active QPainter::brush: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::setWorldTransform: Painter not active QPainter::setWindow: Painter not active QPainter::setViewport: Painter not active QPainter::setViewTransformEnabled: Painter not active QPainter::setMatrixEnabled: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::translate: Painter not active QPainter::setClipRect: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::translate: Painter not active QPainter::setClipRect: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::worldTransform: Painter not active QPainter::viewTransformEnabled: Painter not active QPainter::worldMatrixEnabled: Painter not active QPainter::window: Painter not active QPainter::viewport: Painter not active QPainter::clipRegion: Painter not active QPainter::opacity: Painter not active QPainter::pen: Painter not active QPainter::brush: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::setWorldTransform: Painter not active QPainter::setWindow: Painter not active QPainter::setViewport: Painter not active QPainter::setViewTransformEnabled: Painter not active QPainter::setMatrixEnabled: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::translate: Painter not active QPainter::setClipRect: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active QPainter::worldTransform: Painter not active QPainter::viewTransformEnabled: Painter not active QPainter::worldMatrixEnabled: Painter not active QPainter::window: Painter not active QPainter::viewport: Painter not active QPainter::clipRegion: Painter not active QPainter::opacity: Painter not active QPainter::pen: Painter not active QPainter::brush: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::setWorldTransform: Painter not active QPainter::setWindow: Painter not active QPainter::setViewport: Painter not active QPainter::setViewTransformEnabled: Painter not active QPainter::setMatrixEnabled: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::translate: Painter not active QPainter::setClipRect: Painter not active QPainter::hasClipping: Painter not active QPainter::setPen: Painter not active QPainter::setBrush: Painter not active QPainter::drawRects: Painter not active and ... repetitvely (sorry for length, I don't know if everything is here)
One fix is already in khtml trunk, see http://lists.kde.org/?l=kde-commits&m=126572002623175&w=2
*** Bug 226535 has been marked as a duplicate of this bug. ***
@Tommi: no, while the performance fix is nice, it is unrelated with the real problem. I had a hard time investigating that, because it stems from a problem that only exists in Release builds (!!!) The matter is that QWidget::scroll that we use to manage our efficient scrolling, does not invalidate the screeen in the same way depending if this is a debug build (where it works just fine) or a release build (where it just repaint everything allways!). Arguably, this is partly our fault as well, since there is a note at QWidget::scroll documentation saying that it is only meant to be used on widgets with WA_OpaquePaintEvent attribute set, but still this is a horrible difference of behaviour.
SVN commit 1089159 by ggarand: Critical performance fix: There is a huge difference of behaviour between DEBUG and RELEASE builds of Qt 4.6, that breaks scrolling in KHTML. Using QWidget::scroll() on a widget that doesn't have WA_OpaquePaintEvent attribute set works just fine in Debug, but completely breaks down in Release, causing the whole view to get repainted always. CCMAIL: kde-packager@kde.org BUG: 226265 M +6 -0 khtmlview.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1089159
*** Bug 226665 has been marked as a duplicate of this bug. ***
I have issued a lauchpad-bug for ubuntu https://bugs.launchpad.net/ubuntu/+source/kde4libs/+bug/521890