[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

tkent at chromium.org tkent at chromium.org
Wed Dec 22 11:41:50 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit a5c4850b6821640fd3d26cdc7b3241cd9837ae02
Author: tkent at chromium.org <tkent at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Aug 4 02:07:38 2010 +0000

    <input type=number> UI: Support wheel events
    https://bugs.webkit.org/show_bug.cgi?id=42441
    
    Reviewed by Ojan Vafai.
    
    WebCore:
    
    Test: fast/forms/input-number-wheel.html
    
    * html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::defaultEventHandler):
     Call stepUpFromRenderer() for wheelDeltaY.
    
    LayoutTests:
    
    * fast/forms/input-number-wheel-expected.txt: Added.
    * fast/forms/input-number-wheel.html: Added.
    * fast/forms/script-tests/input-number-wheel.js: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 25c3352..4112c3a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-03  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Ojan Vafai.
+
+        <input type=number> UI: Support wheel events
+        https://bugs.webkit.org/show_bug.cgi?id=42441
+
+        * fast/forms/input-number-wheel-expected.txt: Added.
+        * fast/forms/input-number-wheel.html: Added.
+        * fast/forms/script-tests/input-number-wheel.js: Added.
+
 2010-08-03  Joseph Pecoraro  <joepeck at webkit.org>
 
         Reviewed by David Kilzer.
diff --git a/LayoutTests/fast/forms/input-number-wheel-expected.txt b/LayoutTests/fast/forms/input-number-wheel-expected.txt
new file mode 100644
index 0000000..0d0dcae
--- /dev/null
+++ b/LayoutTests/fast/forms/input-number-wheel-expected.txt
@@ -0,0 +1,17 @@
+Test for wheel operations for <input type=number>
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Initial value is 0. We'll wheel up by 1:
+PASS input.value is "1"
+Wheel up by 100:
+PASS input.value is "2"
+Wheel down by 1:
+PASS input.value is "1"
+Wheel down by 256:
+PASS input.value is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/forms/input-number-wheel.html b/LayoutTests/fast/forms/input-number-wheel.html
new file mode 100644
index 0000000..79145dd
--- /dev/null
+++ b/LayoutTests/fast/forms/input-number-wheel.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/input-number-wheel.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/forms/script-tests/input-number-wheel.js b/LayoutTests/fast/forms/script-tests/input-number-wheel.js
new file mode 100644
index 0000000..64741fb
--- /dev/null
+++ b/LayoutTests/fast/forms/script-tests/input-number-wheel.js
@@ -0,0 +1,32 @@
+description('Test for wheel operations for &lt;input type=number>');
+var parent = document.createElement('div');
+document.body.appendChild(parent);
+parent.innerHTML = '<input type=number id=number value=0>';
+var input = document.getElementById('number');
+input.focus();
+
+function dispatchWheelEvent(element, deltaX, deltaY)
+{
+    var event = document.createEvent('WheelEvent');
+    var dontCare = 0;
+    event.initWebKitWheelEvent(deltaX, deltaY, document.defaultView, dontCare, dontCare, dontCare, dontCare, false, false, false, false);
+    element.dispatchEvent(event);
+}
+
+debug('Initial value is 0. We\'ll wheel up by 1:');
+dispatchWheelEvent(input, 0, 1);
+shouldBe('input.value', '"1"');
+
+debug('Wheel up by 100:');
+dispatchWheelEvent(input, 0, 100);
+shouldBe('input.value', '"2"');
+
+debug('Wheel down by 1:');
+dispatchWheelEvent(input, 0, -1);
+shouldBe('input.value', '"1"');
+
+debug('Wheel down by 256:');
+dispatchWheelEvent(input, 0, -256);
+shouldBe('input.value', '"0"');
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 7d7b900..07bd0b0 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-08-03  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Ojan Vafai.
+
+        <input type=number> UI: Support wheel events
+        https://bugs.webkit.org/show_bug.cgi?id=42441
+
+        Test: fast/forms/input-number-wheel.html
+
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::defaultEventHandler):
+         Call stepUpFromRenderer() for wheelDeltaY.
+
 2010-08-03  Joseph Pecoraro  <joepeck at webkit.org>
 
         Reviewed by David Kilzer.
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index bd3fb4c..b4e5452 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -67,6 +67,7 @@
 #include "StepRange.h"
 #include "StringHash.h"
 #include "TextEvent.h"
+#include "WheelEvent.h"
 #include <wtf/HashMap.h>
 #include <wtf/MathExtras.h>
 #include <wtf/StdLibExtras.h>
@@ -2407,6 +2408,20 @@ void HTMLInputElement::defaultEventHandler(Event* evt)
     if (evt->isBeforeTextInsertedEvent())
         handleBeforeTextInsertedEvent(evt);
 
+    if (hasSpinButton() && evt->isWheelEvent()) {
+        WheelEvent* wheel = static_cast<WheelEvent*>(evt);
+        int step = 0;
+        if (wheel->wheelDeltaY() > 0) {
+            step = 1;
+        } else if (wheel->wheelDeltaY() < 0) {
+            step = -1;
+        }
+        if (step) {
+            stepUpFromRenderer(step);
+            evt->setDefaultHandled();
+            return;
+        }
+    }
     if (isTextField() && renderer() && (evt->isMouseEvent() || evt->isDragEvent() || evt->isWheelEvent() || evt->type() == eventNames().blurEvent || evt->type() == eventNames().focusEvent))
         toRenderTextControlSingleLine(renderer())->forwardEvent(evt);
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list