summaryrefslogtreecommitdiff
path: root/debian/patches/0248-fix-qwidget-scroll-slowness.diff
diff options
context:
space:
mode:
authorAna Beatriz Guerrero Lopez <ana@debian.org>2009-02-18 00:02:37 +0000
committerAna Beatriz Guerrero Lopez <ana@debian.org>2009-02-18 00:02:37 +0000
commit9f72af579a1d31c2ac9572b9b1fb94345ce5043a (patch)
treeb084fb0ff03bac29430b5f2213dd19b06614d2f2 /debian/patches/0248-fix-qwidget-scroll-slowness.diff
parent9a2df626010f7cbccdc812aec07172e0ebd2d128 (diff)
parent27f5b1f4b636b2efd947f3535f056714d32daa02 (diff)
downloadqt4-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.diff39
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();
+