| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 
| 3  * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 3  * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 
| 4  * reserved. | 4  * reserved. | 
| 5  * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5  * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 
| 6  * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 6  * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 
| 7  * | 7  * | 
| 8  * Redistribution and use in source and binary forms, with or without | 8  * Redistribution and use in source and binary forms, with or without | 
| 9  * modification, are permitted provided that the following conditions | 9  * modification, are permitted provided that the following conditions | 
| 10  * are met: | 10  * are met: | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 31 | 31 | 
| 32 #include "core/frame/FrameView.h" | 32 #include "core/frame/FrameView.h" | 
| 33 #include "core/frame/LocalFrame.h" | 33 #include "core/frame/LocalFrame.h" | 
| 34 #include "core/html/HTMLFrameOwnerElement.h" | 34 #include "core/html/HTMLFrameOwnerElement.h" | 
| 35 #include "core/input/EventHandler.h" | 35 #include "core/input/EventHandler.h" | 
| 36 #include "core/layout/HitTestResult.h" | 36 #include "core/layout/HitTestResult.h" | 
| 37 #include "core/layout/LayoutBox.h" | 37 #include "core/layout/LayoutBox.h" | 
| 38 #include "core/layout/LayoutListBox.h" | 38 #include "core/layout/LayoutListBox.h" | 
| 39 #include "core/page/ChromeClient.h" | 39 #include "core/page/ChromeClient.h" | 
| 40 #include "core/page/Page.h" | 40 #include "core/page/Page.h" | 
| 41 #include "wtf/CurrentTime.h" | 41 #include "wtf/Time.h" | 
| 42 | 42 | 
| 43 namespace blink { | 43 namespace blink { | 
| 44 | 44 | 
| 45 // Delay time in second for start autoscroll if pointer is in border edge of | 45 // Delay time in second for start autoscroll if pointer is in border edge of | 
| 46 // scrollable element. | 46 // scrollable element. | 
| 47 static double autoscrollDelay = 0.2; | 47 static const TimeDelta kAutoscrollDelay = TimeDelta::FromSecondsD(0.2); | 
| 48 | 48 | 
| 49 AutoscrollController* AutoscrollController::create(Page& page) { | 49 AutoscrollController* AutoscrollController::create(Page& page) { | 
| 50   return new AutoscrollController(page); | 50   return new AutoscrollController(page); | 
| 51 } | 51 } | 
| 52 | 52 | 
| 53 AutoscrollController::AutoscrollController(Page& page) | 53 AutoscrollController::AutoscrollController(Page& page) | 
| 54     : m_page(&page), | 54     : m_page(&page), | 
| 55       m_autoscrollLayoutObject(nullptr), | 55       m_autoscrollLayoutObject(nullptr), | 
| 56       m_pressedLayoutObject(nullptr), | 56       m_pressedLayoutObject(nullptr), | 
| 57       m_autoscrollType(NoAutoscroll), | 57       m_autoscrollType(NoAutoscroll), | 
| 58       m_dragAndDropAutoscrollStartTime(0), |  | 
| 59       m_didLatchForMiddleClickAutoscroll(false) {} | 58       m_didLatchForMiddleClickAutoscroll(false) {} | 
| 60 | 59 | 
| 61 DEFINE_TRACE(AutoscrollController) { | 60 DEFINE_TRACE(AutoscrollController) { | 
| 62   visitor->trace(m_page); | 61   visitor->trace(m_page); | 
| 63 } | 62 } | 
| 64 | 63 | 
| 65 bool AutoscrollController::autoscrollInProgress() const { | 64 bool AutoscrollController::autoscrollInProgress() const { | 
| 66   return m_autoscrollType == AutoscrollForSelection; | 65   return m_autoscrollType == AutoscrollForSelection; | 
| 67 } | 66 } | 
| 68 | 67 | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 145   m_autoscrollLayoutObject = layoutObject && layoutObject->isBox() | 144   m_autoscrollLayoutObject = layoutObject && layoutObject->isBox() | 
| 146                                  ? toLayoutBox(layoutObject) | 145                                  ? toLayoutBox(layoutObject) | 
| 147                                  : nullptr; | 146                                  : nullptr; | 
| 148 | 147 | 
| 149   if (m_autoscrollType != NoAutoscroll && !m_autoscrollLayoutObject) | 148   if (m_autoscrollType != NoAutoscroll && !m_autoscrollLayoutObject) | 
| 150     m_autoscrollType = NoAutoscroll; | 149     m_autoscrollType = NoAutoscroll; | 
| 151 } | 150 } | 
| 152 | 151 | 
| 153 void AutoscrollController::updateDragAndDrop(Node* dropTargetNode, | 152 void AutoscrollController::updateDragAndDrop(Node* dropTargetNode, | 
| 154                                              const IntPoint& eventPosition, | 153                                              const IntPoint& eventPosition, | 
| 155                                              double eventTime) { | 154                                              TimeTicks eventTime) { | 
| 156   if (!dropTargetNode || !dropTargetNode->layoutObject()) { | 155   if (!dropTargetNode || !dropTargetNode->layoutObject()) { | 
| 157     stopAutoscroll(); | 156     stopAutoscroll(); | 
| 158     return; | 157     return; | 
| 159   } | 158   } | 
| 160 | 159 | 
| 161   if (m_autoscrollLayoutObject && | 160   if (m_autoscrollLayoutObject && | 
| 162       m_autoscrollLayoutObject->frame() != | 161       m_autoscrollLayoutObject->frame() != | 
| 163           dropTargetNode->layoutObject()->frame()) | 162           dropTargetNode->layoutObject()->frame()) | 
| 164     return; | 163     return; | 
| 165 | 164 | 
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 300     return; | 299     return; | 
| 301   } | 300   } | 
| 302 | 301 | 
| 303   EventHandler& eventHandler = | 302   EventHandler& eventHandler = | 
| 304       m_autoscrollLayoutObject->frame()->eventHandler(); | 303       m_autoscrollLayoutObject->frame()->eventHandler(); | 
| 305   IntSize offset = m_autoscrollLayoutObject->calculateAutoscrollDirection( | 304   IntSize offset = m_autoscrollLayoutObject->calculateAutoscrollDirection( | 
| 306       eventHandler.lastKnownMousePosition()); | 305       eventHandler.lastKnownMousePosition()); | 
| 307   IntPoint selectionPoint = eventHandler.lastKnownMousePosition() + offset; | 306   IntPoint selectionPoint = eventHandler.lastKnownMousePosition() + offset; | 
| 308   switch (m_autoscrollType) { | 307   switch (m_autoscrollType) { | 
| 309     case AutoscrollForDragAndDrop: | 308     case AutoscrollForDragAndDrop: | 
| 310       if (WTF::monotonicallyIncreasingTime() - | 309       if ((TimeTicks::Now() - m_dragAndDropAutoscrollStartTime) > | 
| 311               m_dragAndDropAutoscrollStartTime > | 310           kAutoscrollDelay) | 
| 312           autoscrollDelay) |  | 
| 313         m_autoscrollLayoutObject->autoscroll( | 311         m_autoscrollLayoutObject->autoscroll( | 
| 314             m_dragAndDropAutoscrollReferencePosition); | 312             m_dragAndDropAutoscrollReferencePosition); | 
| 315       break; | 313       break; | 
| 316     case AutoscrollForSelection: | 314     case AutoscrollForSelection: | 
| 317       if (!eventHandler.mousePressed()) { | 315       if (!eventHandler.mousePressed()) { | 
| 318         stopAutoscroll(); | 316         stopAutoscroll(); | 
| 319         return; | 317         return; | 
| 320       } | 318       } | 
| 321       eventHandler.updateSelectionForMouseDrag(); | 319       eventHandler.updateSelectionForMouseDrag(); | 
| 322       m_autoscrollLayoutObject->autoscroll(selectionPoint); | 320       m_autoscrollLayoutObject->autoscroll(selectionPoint); | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 405   } else if (east) { | 403   } else if (east) { | 
| 406     view->setCursor(eastPanningCursor()); | 404     view->setCursor(eastPanningCursor()); | 
| 407   } else if (west) { | 405   } else if (west) { | 
| 408     view->setCursor(westPanningCursor()); | 406     view->setCursor(westPanningCursor()); | 
| 409   } else { | 407   } else { | 
| 410     view->setCursor(middlePanningCursor()); | 408     view->setCursor(middlePanningCursor()); | 
| 411   } | 409   } | 
| 412 } | 410 } | 
| 413 | 411 | 
| 414 }  // namespace blink | 412 }  // namespace blink | 
| OLD | NEW | 
|---|