Revision 784734

Jump to revision: Previous Next
Author: ggarand
Date: Wed Mar 12 08:46:25 2008 UTC (15 years, 8 months ago)
Changed paths: 8
Log Message:
automatically merged revision 784703:
Large optimization of scrolling for pages containing "position: fixed"

.replace the dumb approach of repainting the whole page always,
 by collecting fixed regions, repainting them individually,
 then blit-scrolling the remaining surface.

.also maintain a tighter count of fixed objects, so that changes of
 styles might trigger a switch from static to blitting (i.e. fast)

.consequently, go all the way to using QWidget::scroll()
 instead of native QWidget::move() for scrolling, so as to avoid the
 unescapable flicker when switching from a method to the other.
 QWidget::scroll is - I believe, a tad slower, but not significantly so,
 and the gain in overall browsing smoothness is very satisfactory.

-change of scrolling method conveniently allows to avoid the serious
 scrolling bugs in 4.4 beta, making it possible to remove the disabling
 of alien widgets, which in turn should fix the problems Roman encountered
 in Kopete.


Changed paths:

Path Details
Directorybranches/KDE/4.0/kdelibs/khtml/css/cssstyleselector.cpp modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/khtmlview.cpp modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/khtmlview.h modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/rendering/render_block.h modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/rendering/render_canvas.cpp modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/rendering/render_canvas.h modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/rendering/render_layer.cpp modified , text changed
Directorybranches/KDE/4.0/kdelibs/khtml/rendering/render_object.cpp modified , text changed