[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

alex at webkit.org alex at webkit.org
Thu Apr 8 02:01:25 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 5f444f5a46ed42de70469ad37b847bdd43106936
Author: alex at webkit.org <alex at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Feb 26 20:20:35 2010 +0000

    Unreviewed.
    
    Reverted last patch (r55295), it causes problems with the frames.
    
    * WebCoreSupport/ChromeClientGtk.cpp:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55298 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 5f23bf8..66d24e2 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,11 @@
+2010-02-26  Alejandro G. Castro  <alex at igalia.com>
+
+        Unreviewed.
+
+        Reverted last patch (r55295), it causes problems with the frames.
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+
 2010-02-19  Alejandro G. Castro  <alex at igalia.com>
 
         Reviewed by Xan Lopez.
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
index 9e818df..74f5e07 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
@@ -364,10 +364,25 @@ void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con
     // We cannot use gdk_window_scroll here because it is only able to
     // scroll the whole window at once, and we often need to scroll
     // portions of the window only (think frames).
-    GdkRectangle moveRect = clipRect;
-    GdkRegion* moveRegion = gdk_region_rectangle(&moveRect);
-    gdk_window_move_region(window, moveRegion, delta.width(), delta.height());
-    gdk_region_destroy(moveRegion);
+    GdkRectangle area = clipRect;
+    GdkRectangle moveRect;
+
+    GdkRectangle sourceRect = area;
+    sourceRect.x -= delta.width();
+    sourceRect.y -= delta.height();
+
+    GdkRegion* invalidRegion = gdk_region_rectangle(&area);
+
+    if (gdk_rectangle_intersect(&area, &sourceRect, &moveRect)) {
+        GdkRegion* moveRegion = gdk_region_rectangle(&moveRect);
+        gdk_window_move_region(window, moveRegion, delta.width(), delta.height());
+        gdk_region_offset(moveRegion, delta.width(), delta.height());
+        gdk_region_subtract(invalidRegion, moveRegion);
+        gdk_region_destroy(moveRegion);
+    }
+
+    gdk_window_invalidate_region(window, invalidRegion, FALSE);
+    gdk_region_destroy(invalidRegion);
 }
 
 // FIXME: this does not take into account the WM decorations

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list