diff options
author | Ana Beatriz Guerrero Lopez <ana@debian.org> | 2009-02-18 00:02:37 +0000 |
---|---|---|
committer | Ana Beatriz Guerrero Lopez <ana@debian.org> | 2009-02-18 00:02:37 +0000 |
commit | 9f72af579a1d31c2ac9572b9b1fb94345ce5043a (patch) | |
tree | b084fb0ff03bac29430b5f2213dd19b06614d2f2 /debian/patches/0248-fix-qwidget-scroll-slowness.diff | |
parent | 9a2df626010f7cbccdc812aec07172e0ebd2d128 (diff) | |
parent | 27f5b1f4b636b2efd947f3535f056714d32daa02 (diff) | |
download | qt4-x11-9f72af579a1d31c2ac9572b9b1fb94345ce5043a.tar.gz |
moved stuff from trunk/
Diffstat (limited to 'debian/patches/0248-fix-qwidget-scroll-slowness.diff')
-rw-r--r-- | debian/patches/0248-fix-qwidget-scroll-slowness.diff | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/debian/patches/0248-fix-qwidget-scroll-slowness.diff b/debian/patches/0248-fix-qwidget-scroll-slowness.diff new file mode 100644 index 0000000..8e0353b --- /dev/null +++ b/debian/patches/0248-fix-qwidget-scroll-slowness.diff @@ -0,0 +1,39 @@ +qt-bugs@ issue : N227210 +Trolltech task ID : 228764 +bugs.kde.org number : 167739 +applied: no +author: Germain Garand <germain@ebooksfrance.org> + +QWidgetPrivate::scrollRect doesn't account for it's rect argument +but rather examine the whole widget surface when pondering if +it can apply accelerated blitting, resulting in unnecessarily slow +and non-blitting QWidget::scroll calls. + +--- a/src/gui/painting/qbackingstore.cpp ++++ b/src/gui/painting/qbackingstore.cpp +@@ -517,7 +517,8 @@ void QWidgetPrivate::scrollRect(const QR + } + + bool overlapped = false; +- bool accelerateScroll = accelEnv && isOpaque() && !(overlapped = isOverlapped(data.crect)); ++ QRect cRect = clipRect(); ++ bool accelerateScroll = accelEnv && isOpaque() && !(overlapped = isOverlapped(rect & cRect)); + + #if defined(Q_WS_QWS) + QWSWindowSurface *surface; +@@ -552,13 +553,13 @@ void QWidgetPrivate::scrollRect(const QR + #ifdef Q_WS_QWS + QWSWindowSurface *surface = static_cast<QWSWindowSurface*>(wbs->windowSurface); + const QRegion clip = surface->clipRegion().translated(-toplevelOffset) +- & clipRect(); ++ & cRect; + const QRect scrollRect = rect & clip.boundingRect(); + const QRect destRect = scrollRect.translated(dx, dy) + & scrollRect + & clip.boundingRect(); + #else +- QRect scrollRect = rect & clipRect(); ++ QRect scrollRect = rect & cRect; + + QRect destRect = scrollRect.isValid() ? scrollRect.translated(dx,dy).intersected(scrollRect) : QRect(); + |