Changeset 116671 in webkit


Ignore:
Timestamp:
May 10, 2012 11:42:54 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Trigger context menu for long press gesture
https://bugs.webkit.org/show_bug.cgi?id=85919

Patch by Varun Jain <varunjain@google.com> on 2012-05-10
Reviewed by Adam Barth.

Source/WebCore:

Test: fast/events/touch/gesture/context-menu-on-long-press.html

  • page/EventHandler.cpp:

(WebCore):
(WebCore::EventHandler::sendContextMenuEventForGesture):

  • page/EventHandler.h:

(EventHandler):

Source/WebKit/chromium:

  • src/PageWidgetDelegate.cpp:

(WebKit::PageWidgetDelegate::handleInputEvent):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::handleGestureEvent):

Tools:

  • DumpRenderTree/chromium/EventSender.cpp:

(EventSender::EventSender):
(EventSender::gestureLongPress):
(EventSender::gestureEvent):

  • DumpRenderTree/chromium/EventSender.h:

(EventSender):

LayoutTests:

  • fast/events/touch/gesture/context-menu-on-long-press.html: Added.
  • platform/chromium/fast/events/touch/gesture/context-menu-on-long-press-expected.txt: Added.
Location:
trunk
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r116669 r116671  
     12012-05-10  Varun Jain  <varunjain@google.com>
     2
     3        [chromium] Trigger context menu for long press gesture
     4        https://bugs.webkit.org/show_bug.cgi?id=85919
     5
     6        Reviewed by Adam Barth.
     7
     8        * fast/events/touch/gesture/context-menu-on-long-press.html: Added.
     9        * platform/chromium/fast/events/touch/gesture/context-menu-on-long-press-expected.txt: Added.
     10
    1112012-05-10  Abhishek Arya  <inferno@chromium.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r116669 r116671  
     12012-05-10  Varun Jain  <varunjain@google.com>
     2
     3        [chromium] Trigger context menu for long press gesture
     4        https://bugs.webkit.org/show_bug.cgi?id=85919
     5
     6        Reviewed by Adam Barth.
     7
     8        Test: fast/events/touch/gesture/context-menu-on-long-press.html
     9
     10        * page/EventHandler.cpp:
     11        (WebCore):
     12        (WebCore::EventHandler::sendContextMenuEventForGesture):
     13        * page/EventHandler.h:
     14        (EventHandler):
     15
    1162012-05-10  Abhishek Arya  <inferno@chromium.org>
    217
  • trunk/Source/WebCore/page/EventHandler.cpp

    r116650 r116671  
    26002600}
    26012601
     2602#if ENABLE(GESTURE_EVENTS)
     2603bool EventHandler::sendContextMenuEventForGesture(const PlatformGestureEvent& event)
     2604{
     2605#if OS(WINDOWS)
     2606    PlatformEvent::Type eventType = PlatformEvent::MouseReleased;
     2607#else
     2608    PlatformEvent::Type eventType = PlatformEvent::MousePressed;
     2609#endif
     2610    PlatformMouseEvent mouseEvent(event.position(), event.globalPosition(), RightButton, eventType, 1, false, false, false, false, WTF::currentTime());
     2611    return sendContextMenuEvent(mouseEvent);
     2612}
     2613#endif // ENABLE(GESTURE_EVENTS)
    26022614#endif // ENABLE(CONTEXT_MENUS)
    26032615
  • trunk/Source/WebCore/page/EventHandler.h

    r115747 r116671  
    176176    bool sendContextMenuEvent(const PlatformMouseEvent&);
    177177    bool sendContextMenuEventForKey();
     178#if ENABLE(GESTURE_EVENTS)
     179    bool sendContextMenuEventForGesture(const PlatformGestureEvent&);
     180#endif
    178181#endif
    179182
  • trunk/Source/WebKit/chromium/ChangeLog

    r116666 r116671  
     12012-05-10  Varun Jain  <varunjain@google.com>
     2
     3        [chromium] Trigger context menu for long press gesture
     4        https://bugs.webkit.org/show_bug.cgi?id=85919
     5
     6        Reviewed by Adam Barth.
     7
     8        * src/PageWidgetDelegate.cpp:
     9        (WebKit::PageWidgetDelegate::handleInputEvent):
     10        * src/WebViewImpl.cpp:
     11        (WebKit::WebViewImpl::handleGestureEvent):
     12
    1132012-05-10  Mark Pilgrim  <pilgrim@chromium.org>
    214
  • trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp

    r116319 r116671  
    154154    case WebInputEvent::GestureTapDown:
    155155    case WebInputEvent::GestureDoubleTap:
     156    case WebInputEvent::GestureLongPress:
    156157        return handler.handleGestureEvent(*static_cast<const WebGestureEvent*>(&event));
    157158#endif
  • trunk/Source/WebKit/chromium/src/WebViewImpl.cpp

    r116566 r116671  
    659659        return gestureHandled;
    660660    }
     661    case WebInputEvent::GestureLongPress: {
     662        if (!mainFrameImpl() || !mainFrameImpl()->frameView())
     663            return false;
     664
     665        m_page->contextMenuController()->clearContextMenu();
     666        m_contextMenuAllowed = true;
     667        PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
     668        bool handled = mainFrameImpl()->frame()->eventHandler()->sendContextMenuEventForGesture(platformEvent);
     669        m_contextMenuAllowed = false;
     670        return handled;
     671    }
    661672    case WebInputEvent::GestureScrollBegin:
    662673    case WebInputEvent::GestureScrollEnd:
     
    664675    case WebInputEvent::GestureTapDown:
    665676    case WebInputEvent::GestureDoubleTap:
    666     case WebInputEvent::GestureLongPress:
    667677    case WebInputEvent::GesturePinchBegin:
    668678    case WebInputEvent::GesturePinchEnd:
  • trunk/Tools/ChangeLog

    r116668 r116671  
     12012-05-10  Varun Jain  <varunjain@google.com>
     2
     3        [chromium] Trigger context menu for long press gesture
     4        https://bugs.webkit.org/show_bug.cgi?id=85919
     5
     6        Reviewed by Adam Barth.
     7
     8        * DumpRenderTree/chromium/EventSender.cpp:
     9        (EventSender::EventSender):
     10        (EventSender::gestureLongPress):
     11        (EventSender::gestureEvent):
     12        * DumpRenderTree/chromium/EventSender.h:
     13        (EventSender):
     14
    1152012-05-10  Takashi Toyoshima  <toyoshim@chromium.org>
    216
  • trunk/Tools/DumpRenderTree/chromium/EventSender.cpp

    r115767 r116671  
    287287    bindMethod("gestureScrollUpdate", &EventSender::gestureScrollUpdate);
    288288    bindMethod("gestureTap", &EventSender::gestureTap);
     289    bindMethod("gestureLongPress", &EventSender::gestureLongPress);
    289290    bindMethod("zoomPageIn", &EventSender::zoomPageIn);
    290291    bindMethod("zoomPageOut", &EventSender::zoomPageOut);
     
    10931094}
    10941095
     1096void EventSender::gestureLongPress(const CppArgumentList& arguments, CppVariant* result)
     1097{
     1098    result->setNull();
     1099    gestureEvent(WebInputEvent::GestureLongPress, arguments);
     1100}
     1101
    10951102void EventSender::gestureScrollFirstPoint(const CppArgumentList& arguments, CppVariant* result)
    10961103{
     
    11421149        event.y = point.y;
    11431150        break;
     1151    case WebInputEvent::GestureLongPress:
     1152        event.x = point.x;
     1153        event.y = point.y;
     1154        break;
    11441155    default:
    11451156        ASSERT_NOT_REACHED();
  • trunk/Tools/DumpRenderTree/chromium/EventSender.h

    r111182 r116671  
    105105    void gestureScrollUpdate(const CppArgumentList&, CppVariant*);
    106106    void gestureTap(const CppArgumentList&, CppVariant*);
     107    void gestureLongPress(const CppArgumentList&, CppVariant*);
    107108    void gestureEvent(WebKit::WebInputEvent::Type, const CppArgumentList&);
    108109
Note: See TracChangeset for help on using the changeset viewer.