Reviewed by Beth.
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Apr 2006 23:59:20 +0000 (23:59 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Apr 2006 23:59:20 +0000 (23:59 +0000)
        Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=8496
        REGRESSION: Dragging to select text around a text field causes the text field to scroll.

        Test: manual-tests/text-field-autoscroll.html

        * bridge/mac/FrameMac.mm: (WebCore::FrameMac::handleMouseMoveEvent): Start the frame's autoscroll timer
        even when we're calling over the bridge to handle the autoscroll.
        * page/Frame.cpp: (WebCore::Frame::stopAutoscrollTimer): Clear out pointer to layer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@14002 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/bridge/mac/FrameMac.mm
WebCore/manual-tests/text-field-autoscroll.html [new file with mode: 0644]
WebCore/page/Frame.cpp

index 93b2ba7031be9a439fe4dd4f06612e5cd3ff95ff..0cf1d3b9f17f1afa9d811f56a9bb10d96b5887fa 100644 (file)
@@ -1,3 +1,16 @@
+2006-04-21  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Beth.
+
+        Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=8496
+        REGRESSION: Dragging to select text around a text field causes the text field to scroll.
+
+        Test: manual-tests/text-field-autoscroll.html
+
+        * bridge/mac/FrameMac.mm: (WebCore::FrameMac::handleMouseMoveEvent): Start the frame's autoscroll timer
+        even when we're calling over the bridge to handle the autoscroll.
+        * page/Frame.cpp: (WebCore::Frame::stopAutoscrollTimer): Clear out pointer to layer.
+
 2006-04-21  Geoffrey Garen  <ggaren@apple.com>
 
         - And again.
index 605d771e7e5acf4c5fcadd00a69575f1fe5b1bdf..9f90d708fec3bbf4451b527120345cde3f83a54f 100644 (file)
@@ -1737,8 +1737,11 @@ void FrameMac::handleMouseMoveEvent(const MouseEventWithHitTestResults& event)
             layer = layer->parent();
         if (layer)
             handleAutoscroll(layer);
-        else
+        else {
+            if (!d->m_autoscrollTimer.isActive())
+                startAutoscrollTimer();
             [_bridge handleAutoscrollForMouseDragged:_currentEvent];
+        }
             
     } else {
         // If we allowed the other side of the bridge to handle a drag
diff --git a/WebCore/manual-tests/text-field-autoscroll.html b/WebCore/manual-tests/text-field-autoscroll.html
new file mode 100644 (file)
index 0000000..9b81e0b
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+        "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=8496">Bugzilla #8496</a> REGRESSION: Dragging to select text around a text field causes the text field to scroll</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> 
+Start dragging in the text above the text field.  Stop where it says "HERE".</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
+The text field should not autoscroll its text during this drag.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
+If the text field scrolls, the test has failed.
+</p>
+Start dragging here....<br>
+<input id="tf" value="12345678910 abcdefghijkl 0000000000"><br>
+End dragging ............................HERE........watch the text field scroll.
+</body>
+</html>
\ No newline at end of file
index ac2ddb40993ac6a29cb80dd22dad12ab6b77d17e..3c48087226a47882a6f64b7698c86177e3a4af0b 100644 (file)
@@ -2678,6 +2678,7 @@ void Frame::startAutoscrollTimer()
 
 void Frame::stopAutoscrollTimer()
 {
+    d->m_autoscrollLayer = 0;
     d->m_autoscrollTimer.stop();
 }