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

enrica at apple.com enrica at apple.com
Thu Apr 8 02:22:48 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 13780daf5b06a986de04bc02ec78b263cad3f775
Author: enrica at apple.com <enrica at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Mar 15 20:31:04 2010 +0000

    WebCore: For continuous scrolling devices on the Mac (trackpads and Mighty/Magic
    Mice), set the number of wheel ticks equal to the atomic increment of
    the device: a pixel.  This ensures that any scrolling action will
    generate at least one wheel tick, regardless of the speed/length of
    the gesture.
    
    Reviewed by John Sullivan.
    
    https://bugs.webkit.org/show_bug.cgi?id=29601
    <rdar://problem/7453254>
    
    Tests: fast/events/continuous-platform-wheelevent-in-scrolling-div.html
           fast/events/platform-wheelevent-in-scrolling-div.html
    
    * platform/mac/WebCoreSystemInterface.h: Modify method signature.
    * platform/mac/WebCoreSystemInterface.mm: Ditto.
    * platform/mac/WheelEventMac.mm:
    (WebCore::PlatformWheelEvent::PlatformWheelEvent): Call into
    WebKitSystemInterface to determine both wheelTicksX/Y and deltaX/Y.
    WKSI will query the event system for number of wheel ticks and
    pixels/lines scrolled based on the device type.
    
    WebKit/mac: Updated call to WKGetWheelEventDeltas() to match new method signature.
    
    Reviewed by John Sullivan.
    
    https://bugs.webkit.org/show_bug.cgi?id=29601
    <rdar://problem/7453254>
    
    * WebView/WebDynamicScrollBarsView.mm:
    (-[WebDynamicScrollBarsView scrollWheel:]):
    
    WebKitLibraries: Added two new output arguments to WKGetWheelEventDeltas() to return
    the number of scroll wheel ticks in the x and y directions.
    
    Reviewed by John Sullivan.
    
    https://bugs.webkit.org/show_bug.cgi?id=29601.
    <rdar://problem/7453254>
    
    * WebKitSystemInterface.h:
    * libWebKitSystemInterfaceLeopard.a:
    * libWebKitSystemInterfaceSnowLeopard.a:
    * libWebKitSystemInterfaceTiger.a:
    
    LayoutTests: These tests verify that scrollwheel events (both continuous and
    non-continuous) generate the expected pixel deltas in scrollable
    regions, and also generate DOM mousewheel events with expected
    wheelDelta values.
    
    Reviewed by John Sullivan.
    
    https://bugs.webkit.org/show_bug.cgi?id=29601
    <rdar://problem/7453254>
    
    * fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt: Added.
    * fast/events/continuous-platform-wheelevent-in-scrolling-div.html: Added.
    * fast/events/platform-wheelevent-in-scrolling-div-expected.txt: Added.
    * fast/events/platform-wheelevent-in-scrolling-div.html: Added.
    * fast/events/wheelevent-in-scrolling-div-expected.txt: Rebased
    expected results due to change in test output formatting.
    * fast/events/wheelevent-in-scrolling-div.html: Modified to use common
    js logging and assertion functions.
    * platform/gtk/Skipped: DRT support needed by tests not yet implemented
    in GTK port.  See https://bugs.webkit.org/show_bug.cgi?id=36003.
    * platform/mac-tiger/Skipped: DRT support needed by tests not possible
    to implement in Tiger.
    * platform/qt/Skipped: DRT support for tests not yet implemented in Qt
    port.  See https://bugs.webkit.org/show_bug.cgi?id=36004.
    * platform/win/Skipped: DRT support for tests not yet implemented in
    Windows port.  See https://bugs.webkit.org/show_bug.cgi?id=36002.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@56012 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 3e0eab7..48721de 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,32 @@
+2010-03-15  Andy Estes  <aestes at apple.com>
+
+        Reviewed by John Sullivan.
+
+        These tests verify that scrollwheel events (both continuous and
+        non-continuous) generate the expected pixel deltas in scrollable
+        regions, and also generate DOM mousewheel events with expected
+        wheelDelta values.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29601
+        <rdar://problem/7453254>
+
+        * fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt: Added.
+        * fast/events/continuous-platform-wheelevent-in-scrolling-div.html: Added.
+        * fast/events/platform-wheelevent-in-scrolling-div-expected.txt: Added.
+        * fast/events/platform-wheelevent-in-scrolling-div.html: Added.
+        * fast/events/wheelevent-in-scrolling-div-expected.txt: Rebased
+        expected results due to change in test output formatting.
+        * fast/events/wheelevent-in-scrolling-div.html: Modified to use common
+        js logging and assertion functions.
+        * platform/gtk/Skipped: DRT support needed by tests not yet implemented
+        in GTK port.  See https://bugs.webkit.org/show_bug.cgi?id=36003.
+        * platform/mac-tiger/Skipped: DRT support needed by tests not possible
+        to implement in Tiger.
+        * platform/qt/Skipped: DRT support for tests not yet implemented in Qt
+        port.  See https://bugs.webkit.org/show_bug.cgi?id=36004.
+        * platform/win/Skipped: DRT support for tests not yet implemented in
+        Windows port.  See https://bugs.webkit.org/show_bug.cgi?id=36002.
+
 2010-03-15  Jian Li  <jianli at chromium.org>
 
         Reviewed by Sam Weinig.
diff --git a/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt b/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt
new file mode 100644
index 0000000..af0b6db
--- /dev/null
+++ b/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt
@@ -0,0 +1,6 @@
+PASS event.wheelDeltaY is window.expectedScrollTop*-120
+PASS event.wheelDeltaX is window.expectedScrollLeft*-120
+PASS event.wheelDelta is window.expectedScrollTop*-120
+PASS div.scrollTop is window.expectedScrollTop
+PASS div.scrollLeft is window.expectedScrollLeft
+
diff --git a/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div.html b/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div.html
new file mode 100644
index 0000000..fec1041
--- /dev/null
+++ b/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div.html
@@ -0,0 +1,61 @@
+<html>
+    <head>
+        <link rel="stylesheet" href="../js/resources/js-test-style.css">
+        <script src="../js/resources/js-test-pre.js"></script>
+        <script>
+            var expectedScrollTop = 200;
+            var expectedScrollLeft = 100;
+            var event;
+            var div;
+
+            if (window.layoutTestController) {
+                layoutTestController.waitUntilDone();
+            }
+
+            function dispatchWheelEvent()
+            {
+                var overflowElement = document.getElementById("overflow");
+                if (overflowElement)
+                    overflowElement.addEventListener("mousewheel", mousewheelHandler, false);
+
+                if (window.eventSender) {
+                    eventSender.mouseMoveTo(100, 110);
+                    eventSender.continuousMouseScrollBy(-window.expectedScrollLeft, -window.expectedScrollTop);
+                }
+
+                setTimeout('checkOffsets();', 100);
+            }
+
+            function checkOffsets()
+            {
+                div = document.getElementById("overflow");
+                shouldBe("div.scrollTop", "window.expectedScrollTop");
+                shouldBe("div.scrollLeft", "window.expectedScrollLeft");
+
+                if (window.layoutTestController)
+                    window.layoutTestController.notifyDone();
+            }
+
+            function mousewheelHandler(e)
+            {
+                event = e;
+                shouldBe("event.wheelDeltaY", "window.expectedScrollTop*-120");
+                shouldBe("event.wheelDeltaX", "window.expectedScrollLeft*-120");
+
+                if (e.wheelDeltaY)
+                    shouldBe("event.wheelDelta", "window.expectedScrollTop*-120");
+                else
+                    shouldBe("event.wheelDelta", "window.expectedScrollLeft*-120");
+            }
+        </script>
+    </head>
+
+    <body style="margin:0" onload="setTimeout('dispatchWheelEvent();', 100)">
+        <div id="overflow" style="border:2px solid black;overflow:auto;height:200px;width:200px;">
+            <div style="background-color:red;height:200px;width:400px;"></div>
+            <div style="background-color:green;height:200px;width:400px;"></div>
+            <div style="background-color:red;height:200px;width:400px;"></div>
+        </div>
+        <div id="console"></div>
+    </body>
+</html>
diff --git a/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div-expected.txt b/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div-expected.txt
new file mode 100644
index 0000000..b4f26d7
--- /dev/null
+++ b/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div-expected.txt
@@ -0,0 +1,6 @@
+PASS event.wheelDeltaY is window.expectedScrollTop*-120
+PASS event.wheelDeltaX is window.expectedScrollLeft*-120
+PASS event.wheelDelta is window.expectedScrollTop*-120
+PASS div.scrollTop is window.expectedScrollTop*window.pixelsPerWheelTick
+PASS div.scrollLeft is window.expectedScrollLeft*window.pixelsPerWheelTick
+
diff --git a/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div.html b/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div.html
new file mode 100644
index 0000000..2e382ac
--- /dev/null
+++ b/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div.html
@@ -0,0 +1,61 @@
+<html>
+    <head>
+        <link rel="stylesheet" href="../js/resources/js-test-style.css">
+        <script src="../js/resources/js-test-pre.js"></script>
+        <script>
+            var expectedScrollTop = 5;
+            var expectedScrollLeft = 3;
+            var pixelsPerWheelTick = 40;
+            var event;
+            var div;
+
+            if (window.layoutTestController)
+                layoutTestController.waitUntilDone();
+
+            function dispatchWheelEvent()
+            {
+                var overflowElement = document.getElementById("overflow");
+                if (overflowElement)
+                    overflowElement.addEventListener("mousewheel", mousewheelHandler, false);
+
+                if (window.eventSender) {
+                    eventSender.mouseMoveTo(100, 110);
+                    eventSender.mouseScrollBy(-window.expectedScrollLeft, -window.expectedScrollTop);
+                }
+
+                setTimeout('checkOffsets();', 100);
+            }
+
+            function checkOffsets()
+            {
+                div = document.getElementById("overflow");
+                shouldBe("div.scrollTop", "window.expectedScrollTop*window.pixelsPerWheelTick");
+                shouldBe("div.scrollLeft", "window.expectedScrollLeft*window.pixelsPerWheelTick");
+
+                if (window.layoutTestController)
+                    window.layoutTestController.notifyDone();
+            }
+
+            function mousewheelHandler(e)
+            {
+                event = e;
+                shouldBe("event.wheelDeltaY", "window.expectedScrollTop*-120");
+                shouldBe("event.wheelDeltaX", "window.expectedScrollLeft*-120");
+
+                if (e.wheelDeltaY)
+                    shouldBe("event.wheelDelta", "window.expectedScrollTop*-120");
+                else
+                    shouldBe("event.wheelDelta", "window.expectedScrollLeft*-120");
+            }
+        </script>
+    </head>
+
+    <body style="margin:0" onload="setTimeout('dispatchWheelEvent();', 100)">
+        <div id="overflow" style="border:2px solid black;overflow:auto;height:200px;width:200px;">
+            <div style="background-color:red;height:200px;width:400px;"></div>
+            <div style="background-color:green;height:200px;width:400px;"></div>
+            <div style="background-color:red;height:200px;width:400px;"></div>
+        </div>
+        <div id="console"></div>
+    </body>
+</html>
diff --git a/LayoutTests/fast/events/wheelevent-in-scrolling-div-expected.txt b/LayoutTests/fast/events/wheelevent-in-scrolling-div-expected.txt
index e2471ef..af0b6db 100644
--- a/LayoutTests/fast/events/wheelevent-in-scrolling-div-expected.txt
+++ b/LayoutTests/fast/events/wheelevent-in-scrolling-div-expected.txt
@@ -1,6 +1,6 @@
-scrollTop=200 (should be 200): PASS
-scrollLeft=100 (should be 100): PASS
-wheelDeltaY=-24000 (should be -24000): PASS
-wheelDeltaX=-12000 (should be -12000): PASS
-wheelDelta=-24000 (should be -24000): PASS
+PASS event.wheelDeltaY is window.expectedScrollTop*-120
+PASS event.wheelDeltaX is window.expectedScrollLeft*-120
+PASS event.wheelDelta is window.expectedScrollTop*-120
+PASS div.scrollTop is window.expectedScrollTop
+PASS div.scrollLeft is window.expectedScrollLeft
 
diff --git a/LayoutTests/fast/events/wheelevent-in-scrolling-div.html b/LayoutTests/fast/events/wheelevent-in-scrolling-div.html
index 03dae4b..8733546 100644
--- a/LayoutTests/fast/events/wheelevent-in-scrolling-div.html
+++ b/LayoutTests/fast/events/wheelevent-in-scrolling-div.html
@@ -1,84 +1,60 @@
-<head>
-    <script>
-        var expectedScrollTop = 200;
-        var expectedScrollLeft = 100;
+<html>
+    <head>
+        <link rel="stylesheet" href="../js/resources/js-test-style.css">
+        <script src="../js/resources/js-test-pre.js"></script>
+        <script>
+            var expectedScrollTop = 200;
+            var expectedScrollLeft = 100;
+            var event;
+            var div;
 
-        if (window.layoutTestController) {
-            layoutTestController.dumpAsText();
-            layoutTestController.waitUntilDone();
-        }
+            if (window.layoutTestController)
+                layoutTestController.waitUntilDone();
+
+            function dispatchWheelEvent()
+            {
+                var overflowElement = document.getElementById("overflow");
+                if (overflowElement) {
+                    overflowElement.addEventListener("mousewheel", mousewheelHandler, false);
 
-        function dispatchWheelEvent()
-        {
-            var overflowElement = document.getElementById("overflow");
-            if (overflowElement) {
-                overflowElement.addEventListener("mousewheel", mousewheelHandler, false);
-                var wheelEvent = document.createEvent("WheelEvent");
-                if (wheelEvent) {
+                    var wheelEvent = document.createEvent("WheelEvent");
                     wheelEvent.initWebKitWheelEvent(-window.expectedScrollLeft, -window.expectedScrollTop, window, 0, 0, 0, 0, false, false, false, false);
                     overflowElement.dispatchEvent(wheelEvent);
                 }
-            }
-
-            setTimeout('printScrollOffsets();', 100);
-        }
-
-        function passFailString(p)
-        {
-            var color = p?"green":"red";
-            var text = p?"PASS":"FAIL";
-            return "<span style='color:"+color+"'>"+text+"</span>";
-        }
-
-        function printScrollOffsets()
-        {
-            var consoleDiv = document.getElementById("offsetConsole");
-            var overflowDiv = document.getElementById("overflow");
-            if (consoleDiv && overflowDiv) {
-                consoleDiv.innerHTML = "";
 
-                consoleDiv.innerHTML += "scrollTop=" + overflowDiv.scrollTop + " (should be " + window.expectedScrollTop + "): ";
-                consoleDiv.innerHTML += passFailString(overflowDiv.scrollTop == window.expectedScrollTop);
-                consoleDiv.innerHTML += "<br>"
-
-                consoleDiv.innerHTML += "scrollLeft=" + overflowDiv.scrollLeft + " (should be " + window.expectedScrollLeft + "): ";
-                consoleDiv.innerHTML += passFailString(overflowDiv.scrollLeft == window.expectedScrollLeft);
-                consoleDiv.innerHTML += "<br>"
+                setTimeout('checkOffsets();', 100);
             }
 
-            if (window.layoutTestController)
-                window.layoutTestController.notifyDone();
-        }
-
-        function mousewheelHandler(e)
-        {
-            var consoleDiv = document.getElementById("mousewheelConsole");
-            if (consoleDiv) {
-                consoleDiv.innerHTML = "";
+            function checkOffsets()
+            {
+                div = document.getElementById("overflow");
+                shouldBe("div.scrollTop", "window.expectedScrollTop");
+                shouldBe("div.scrollLeft", "window.expectedScrollLeft");
 
-                consoleDiv.innerHTML += "wheelDeltaY=" + e.wheelDeltaY + " (should be " + window.expectedScrollTop*-120 + "): ";
-                consoleDiv.innerHTML += passFailString(e.wheelDeltaY == window.expectedScrollTop*-120);
-                consoleDiv.innerHTML += "<br>"
+                if (window.layoutTestController)
+                    window.layoutTestController.notifyDone();
+            }
 
-                consoleDiv.innerHTML += "wheelDeltaX=" + e.wheelDeltaX + " (should be " + window.expectedScrollLeft*-120 + "): ";
-                consoleDiv.innerHTML += passFailString(e.wheelDeltaX == window.expectedScrollLeft*-120);
-                consoleDiv.innerHTML += "<br>"
+            function mousewheelHandler(e)
+            {
+                event = e;
+                shouldBe("event.wheelDeltaY", "window.expectedScrollTop*-120");
+                shouldBe("event.wheelDeltaX", "window.expectedScrollLeft*-120");
 
-                var expectedScroll = e.wheelDeltaY?window.expectedScrollTop:window.expectedScrollLeft;
-                consoleDiv.innerHTML += "wheelDelta=" + e.wheelDelta + " (should be " + expectedScroll*-120 + "): ";
-                consoleDiv.innerHTML += passFailString(e.wheelDelta == expectedScroll*-120);
-                consoleDiv.innerHTML += "<br>"
+                if (e.wheelDeltaY)
+                    shouldBe("event.wheelDelta", "window.expectedScrollTop*-120");
+                else
+                    shouldBe("event.wheelDelta", "window.expectedScrollLeft*-120");
             }
-        }
-    </script>
-</head>
-
-<body style="margin:0" onload="setTimeout('dispatchWheelEvent();', 100)">
-    <div id="overflow" style="border:2px solid black;overflow:auto;height:200px;width:200px;">
-        <div style="background-color:red;height:200px;width:400px;"></div>
-        <div style="background-color:green;height:200px;width:400px;"></div>
-        <div style="background-color:red;height:200px;width:400px;"></div>
-    </div>
-    <div id="offsetConsole"><span style="color:red">FAIL</span></div>
-    <div id="mousewheelConsole"><span style="color:red">FAIL</span></div>
-</body>
+        </script>
+    </head>
+
+    <body style="margin:0" onload="setTimeout('dispatchWheelEvent();', 100)">
+        <div id="overflow" style="border:2px solid black;overflow:auto;height:200px;width:200px;">
+            <div style="background-color:red;height:200px;width:400px;"></div>
+            <div style="background-color:green;height:200px;width:400px;"></div>
+            <div style="background-color:red;height:200px;width:400px;"></div>
+        </div>
+        <div id="console"></div>
+    </body>
+</html>
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index acc9071..e1dde80 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -5819,8 +5819,11 @@ fast/events/zoom-dblclick.html
 # For some reason crashes when run with all tests. Passes individually.
 fast/forms/multiple-form-submission-protection-mouse.html
 
-# mouseScrollBy() is not yet implemented in the GTK EventSender API.
+# https://bugs.webkit.org/show_bug.cgi?id=36003
+# mouseScrollBy() and continuousMouseScrollBy() are not yet implemented in the GTK EventSender API.
 fast/events/remove-child-onscroll.html
+fast/events/platform-wheelevent-in-scrolling-div.html
+fast/events/continuous-platform-wheelevent-in-scrolling-div.html
 
 # renderTheme is not ready to draw progress element
 fast/dom/HTMLProgressElement/progress-element.html
diff --git a/LayoutTests/platform/mac-tiger/Skipped b/LayoutTests/platform/mac-tiger/Skipped
index 31a7238..ab1a72a 100644
--- a/LayoutTests/platform/mac-tiger/Skipped
+++ b/LayoutTests/platform/mac-tiger/Skipped
@@ -120,8 +120,10 @@ http/tests/media/video-referer.html
 # This test fails on Tiger, and when it fails, it dumps different results each time.
 java/lc3/JavaArray/ToString-001.html
 
-# We can't implement mouseScrollBy() in Tiger due to the lack of CGEventCreateScrollWheelEvent().
+# We can't implement mouseScrollBy() or continuousMouseScrollBy() in Tiger due to the lack of CGEventCreateScrollWheelEvent().
 fast/events/remove-child-onscroll.html
+fast/events/platform-wheelevent-in-scrolling-div.html
+fast/events/continuous-platform-wheelevent-in-scrolling-div.html
 
 # Intermittently times out on Tiger bot.
 # https://bugs.webkit.org/show_bug.cgi?id=36039
diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped
index 6567355..89d721f 100644
--- a/LayoutTests/platform/qt/Skipped
+++ b/LayoutTests/platform/qt/Skipped
@@ -5097,8 +5097,11 @@ http/tests/cookies/third-party-cookie-relaxing.html
 # For some reason crashes when run with all tests. Passes individually.
 fast/forms/multiple-form-submission-protection-mouse.html
 
-# mouseScrollBy() is not yet implemented in the Qt EventSender API.
+# https://bugs.webkit.org/show_bug.cgi?id=36004
+# mouseScrollBy() and continuousMouseScrollBy() are not yet implemented in the Qt EventSender API.
 fast/events/remove-child-onscroll.html
+fast/events/platform-wheelevent-in-scrolling-div.html
+fast/events/continuous-platform-wheelevent-in-scrolling-div.html
 
 # It fails in DRT, but passes in QtLauncher
 # https://bugs.webkit.org/show_bug.cgi?id=35921
diff --git a/LayoutTests/platform/win/Skipped b/LayoutTests/platform/win/Skipped
index 8c53b6d..4399a22 100644
--- a/LayoutTests/platform/win/Skipped
+++ b/LayoutTests/platform/win/Skipped
@@ -793,8 +793,11 @@ media/video-preload.html
 # For some reason crashes when run with all tests. Passes individually.
 fast/forms/multiple-form-submission-protection-mouse.html
 
-# mouseScrollBy() is not yet implemented in the Windows EventSender API.
+# https://bugs.webkit.org/show_bug.cgi?id=36002
+# mouseScrollBy() and continuousMouseScrollBy() are not yet implemented in the Windows EventSender API.
 fast/events/remove-child-onscroll.html
+fast/events/platform-wheelevent-in-scrolling-div.html
+fast/events/continuous-platform-wheelevent-in-scrolling-div.html
 
 # Windows port doesn't yet support rendering of non-BMP characters even though there's a font available.
 fast/text/international/plane2.html 
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d180629..bd2783d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-03-15  Andy Estes  <aestes at apple.com>
+
+        Reviewed by John Sullivan.
+
+        For continuous scrolling devices on the Mac (trackpads and Mighty/Magic
+        Mice), set the number of wheel ticks equal to the atomic increment of
+        the device: a pixel.  This ensures that any scrolling action will
+        generate at least one wheel tick, regardless of the speed/length of
+        the gesture.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29601
+        <rdar://problem/7453254>
+
+        Tests: fast/events/continuous-platform-wheelevent-in-scrolling-div.html
+               fast/events/platform-wheelevent-in-scrolling-div.html
+
+        * platform/mac/WebCoreSystemInterface.h: Modify method signature.
+        * platform/mac/WebCoreSystemInterface.mm: Ditto.
+        * platform/mac/WheelEventMac.mm:
+        (WebCore::PlatformWheelEvent::PlatformWheelEvent): Call into
+        WebKitSystemInterface to determine both wheelTicksX/Y and deltaX/Y.
+        WKSI will query the event system for number of wheel ticks and
+        pixels/lines scrolled based on the device type.
+
 2010-03-15  Philippe Normand  <pnormand at igalia.com>
 
         Reviewed by Gustavo Noronha Silva.
diff --git a/WebCore/platform/mac/WebCoreSystemInterface.h b/WebCore/platform/mac/WebCoreSystemInterface.h
index e7521dc..f289ee4 100644
--- a/WebCore/platform/mac/WebCoreSystemInterface.h
+++ b/WebCore/platform/mac/WebCoreSystemInterface.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright 2006, 2007, 2008, 2010 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -116,7 +116,7 @@ extern ATSUFontID (*wkGetNSFontATSUFontId)(NSFont*);
 extern double (*wkGetNSURLResponseCalculatedExpiration)(NSURLResponse *response);
 extern NSDate *(*wkGetNSURLResponseLastModifiedDate)(NSURLResponse *response);
 extern BOOL (*wkGetNSURLResponseMustRevalidate)(NSURLResponse *response);
-extern void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* continuous);
+extern void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, float* wheelTicksX, float* wheelTicksY, BOOL* continuous);
 extern BOOL (*wkHitTestMediaUIPart)(int part, int themeStyle, CGRect bounds, CGPoint point);
 extern void (*wkMeasureMediaUIPart)(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize);
 extern BOOL (*wkMediaControllerThemeAvailable)(int themeStyle);
diff --git a/WebCore/platform/mac/WebCoreSystemInterface.mm b/WebCore/platform/mac/WebCoreSystemInterface.mm
index f3e0e77..b276467 100644
--- a/WebCore/platform/mac/WebCoreSystemInterface.mm
+++ b/WebCore/platform/mac/WebCoreSystemInterface.mm
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006, 2007, 2008 Apple Computer, Inc. All rights reserved.
+ * Copyright 2006, 2007, 2008, 2010 Apple Computer, Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -51,7 +51,7 @@ NSString* (*wkGetMIMETypeForExtension)(NSString*);
 NSTimeInterval (*wkGetNSURLResponseCalculatedExpiration)(NSURLResponse *response);
 NSDate *(*wkGetNSURLResponseLastModifiedDate)(NSURLResponse *response);
 BOOL (*wkGetNSURLResponseMustRevalidate)(NSURLResponse *response);
-void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* continuous);
+void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, float* wheelTicksX, float* wheelTicksY, BOOL* continuous);
 void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
 unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
 int (*wkQTMovieDataRate)(QTMovie*);
diff --git a/WebCore/platform/mac/WheelEventMac.mm b/WebCore/platform/mac/WheelEventMac.mm
index c9a0efc..d7e2934 100644
--- a/WebCore/platform/mac/WheelEventMac.mm
+++ b/WebCore/platform/mac/WheelEventMac.mm
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2006, 2010 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -43,13 +43,9 @@ PlatformWheelEvent::PlatformWheelEvent(NSEvent* event, NSView *windowView)
     , m_metaKey([event modifierFlags] & NSCommandKeyMask)
 {
     BOOL continuous;
-    wkGetWheelEventDeltas(event, &m_deltaX, &m_deltaY, &continuous);
-    if (continuous) {
-        m_wheelTicksX = m_deltaX / static_cast<float>(Scrollbar::pixelsPerLineStep());
-        m_wheelTicksY = m_deltaY / static_cast<float>(Scrollbar::pixelsPerLineStep());
-    } else {
-        m_wheelTicksX = m_deltaX;
-        m_wheelTicksY = m_deltaY;
+    wkGetWheelEventDeltas(event, &m_deltaX, &m_deltaY, &m_wheelTicksX, &m_wheelTicksY, &continuous);
+
+    if (!continuous) {
         m_deltaX *= static_cast<float>(Scrollbar::pixelsPerLineStep());
         m_deltaY *= static_cast<float>(Scrollbar::pixelsPerLineStep());
     }
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index e8558cf..e6d3046 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,15 @@
+2010-03-15  Andy Estes  <aestes at apple.com>
+
+        Reviewed by John Sullivan.
+
+        Updated call to WKGetWheelEventDeltas() to match new method signature.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29601
+        <rdar://problem/7453254>
+
+        * WebView/WebDynamicScrollBarsView.mm:
+        (-[WebDynamicScrollBarsView scrollWheel:]):
+
 2010-03-15  John Sullivan  <sullivan at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
index b1a8c8d..e0db677 100644
--- a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
+++ b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2005, 2008, 2010 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -406,8 +406,10 @@ static const unsigned cMaxUpdateScrollbarsPass = 2;
 {
     float deltaX;
     float deltaY;
+    float wheelTicksX;
+    float wheelTicksY;
     BOOL isContinuous;
-    WKGetWheelEventDeltas(event, &deltaX, &deltaY, &isContinuous);
+    WKGetWheelEventDeltas(event, &deltaX, &deltaY, &wheelTicksX, &wheelTicksY, &isContinuous);
 
     BOOL isLatchingEvent = WKIsLatchingWheelEvent(event);
 
diff --git a/WebKitLibraries/ChangeLog b/WebKitLibraries/ChangeLog
index 053f302..b3d820b 100644
--- a/WebKitLibraries/ChangeLog
+++ b/WebKitLibraries/ChangeLog
@@ -1,3 +1,18 @@
+2010-03-15  Andy Estes  <aestes at apple.com>
+
+        Reviewed by John Sullivan.
+
+        Added two new output arguments to WKGetWheelEventDeltas() to return
+        the number of scroll wheel ticks in the x and y directions.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29601.
+        <rdar://problem/7453254>
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLeopard.a:
+        * libWebKitSystemInterfaceSnowLeopard.a:
+        * libWebKitSystemInterfaceTiger.a:
+
 2010-03-14  Dan Bernstein  <mitz at apple.com>
 
         Reviewed by Darin Adler.
diff --git a/WebKitLibraries/WebKitSystemInterface.h b/WebKitLibraries/WebKitSystemInterface.h
index ed68410..50815aa 100644
--- a/WebKitLibraries/WebKitSystemInterface.h
+++ b/WebKitLibraries/WebKitSystemInterface.h
@@ -176,7 +176,7 @@ BOOL WKSupportsMultipartXMixedReplace(NSMutableURLRequest *request);
 
 BOOL WKCGContextIsBitmapContext(CGContextRef context);
 
-void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous);
+void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, float *wheelTicksX, float *wheelTicksY, BOOL *continuous);
 
 BOOL WKAppVersionCheckLessThan(NSString *, int, double);
 
diff --git a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
index 722044f..11ee822 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
index 3e3e1d7..27a113a 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceTiger.a b/WebKitLibraries/libWebKitSystemInterfaceTiger.a
index 3dd651a..7264b61 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceTiger.a and b/WebKitLibraries/libWebKitSystemInterfaceTiger.a differ

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list