summaryrefslogtreecommitdiffstats
path: root/xulrunner-qt/firefox-qt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'xulrunner-qt/firefox-qt.patch')
-rw-r--r--xulrunner-qt/firefox-qt.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/xulrunner-qt/firefox-qt.patch b/xulrunner-qt/firefox-qt.patch
new file mode 100644
index 0000000..ff4c263
--- /dev/null
+++ b/xulrunner-qt/firefox-qt.patch
@@ -0,0 +1,43 @@
+diff -ur mozilla-1.9.2.orig/widget/src/qt/nsWindow.cpp mozilla-1.9.2/widget/src/qt/nsWindow.cpp
+--- mozilla-1.9.2.orig/widget/src/qt/nsWindow.cpp
++++ mozilla-1.9.2/widget/src/qt/nsWindow.cpp
+@@ -668,7 +668,7 @@
+
+ void
+ nsWindow::Scroll(const nsIntPoint& aDelta,
+- const nsIntRect& aSource,
++ const nsTArray<nsIntRect>& aDestRects,
+ const nsTArray<nsIWidget::Configuration>& aConfigurations)
+ {
+ if (!mWidget) {
+@@ -695,8 +695,16 @@
+ }
+ }
+
+- QRect rect(aSource.x, aSource.y, aSource.width, aSource.height);
+- mWidget->scroll(aDelta.x, aDelta.y, rect);
++ // Do a similar thing to what is done in GTK widget set.
++ // Even though it's a workaround from old GTK?
++ for(PRUint32 i = 0; i < aDestRects.Length(); ++i) {
++ const nsIntRect& aSource = aDestRects[i];
++
++ QRect rect(aSource.x, aSource.y, aSource.width, aSource.height);
++ mWidget->scroll(aDelta.x, aDelta.y, rect);
++ }
++
++
+ ConfigureChildren(aConfigurations);
+
+ // Show windows again...
+diff -ur mozilla-1.9.2.orig/widget/src/qt/nsWindow.h mozilla-1.9.2/widget/src/qt/nsWindow.h
+--- mozilla-1.9.2.orig/widget/src/qt/nsWindow.h
++++ mozilla-1.9.2/widget/src/qt/nsWindow.h
+@@ -165,7 +165,7 @@
+ PRBool aIsSynchronous);
+ NS_IMETHOD Update();
+ void Scroll(const nsIntPoint&,
+- const nsIntRect&,
++ const nsTArray<nsIntRect>&,
+ const nsTArray<nsIWidget::Configuration>&);
+
+ virtual void* GetNativeData(PRUint32 aDataType);