-
commit-queue@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=101545 Patch by Varun Jain <varunjain@chromium.org> on 2012-11-26 Reviewed by Antonio Gomes. For LongPress, we simulate drag by sending a mouse down and mouse drag events. If a drag is not started (because maybe there is no draggable element), then we show context menu instead (which is the current behavior for LongPress). For LongTap, we use the existing functions that LongPress uses to summon the context menu. LongPress initiated drag and drop can be enabled/disabled by the platform using the Setting touchDragDropEnabled which is disabled by default. Source/WebCore: Tests: fast/events/touch/gesture/context-menu-on-long-tap.html fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html * page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): (WebCore::EventHandler::clear): (WebCore::EventHandler::handleMouseDraggedEvent): (WebCore::EventHandler::handleGestureEvent): (WebCore::EventHandler::handleGestureLongPress): (WebCore::EventHandler::handleGestureLongTap): (WebCore): (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu): (WebCore::EventHandler::adjustGesturePosition): (WebCore::EventHandler::handleDrag): * page/EventHandler.h: (EventHandler): * page/Settings.in: Source/WebKit/chromium: * public/WebSettings.h: * src/WebSettingsImpl.cpp: (WebKit::WebSettingsImpl::setTouchDragDropEnabled): (WebKit): * src/WebSettingsImpl.h: (WebSettingsImpl): Tools: * DumpRenderTree/chromium/TestRunner/src/EventSender.cpp: (WebTestRunner): (WebTestRunner::EventSender::EventSender): (WebTestRunner::EventSender::gestureLongTap): (WebTestRunner::EventSender::gestureEvent): * DumpRenderTree/chromium/TestRunner/src/EventSender.h: (EventSender): * DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp: (WebTestRunner::TestRunner::TestRunner): (WebTestRunner::TestRunner::setTouchDragDropEnabled): (WebTestRunner): * DumpRenderTree/chromium/TestRunner/src/TestRunner.h: (TestRunner): LayoutTests: * fast/events/touch/gesture/context-menu-on-long-tap.html: Added. * fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html: Added. * platform/chromium/fast/events/touch/gesture/context-menu-on-long-tap-expected.txt: Added. * platform/chromium/fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag-expected.txt: Added. * touchadjustment/touch-links-longpress-expected.txt: * touchadjustment/touch-links-longpress.html: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
adf39aa9