Skip to content
  • graouts@apple.com's avatar
    Web Inspector: Allow showing a context menu on all mouse events. · 05069040
    graouts@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=124747
    
    Reviewed by Joseph Pecoraro.
    
    Source/WebCore:
    
    Add a new InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event*) method
    to let the inspector front-end dispatch a native contextmenu event that will allow
    for a context menu to be shown from within a non-contextmenu event handler.
    
    * inspector/InspectorFrontendHost.cpp:
    (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
    Check that we're dealing with a mouse event, get the frame for the event target
    and the event's location to call ContextMenuController::showContextMenuAt()
    which will handle the new contextmenu event dispatch to the original event target.
    
    * inspector/InspectorFrontendHost.h:
    * inspector/InspectorFrontendHost.idl:
    
    Source/WebInspectorUI:
    
    Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
    is called outside of a contextmenu event handler and would therefore not show the expected
    context menu (except in the Remote Web Inspector where this already works).
    
    * UserInterface/ContextMenu.js:
    (WebInspector.ContextMenu.prototype.show):
    Check whether the event is a contextmenu event, and if not, add an event listener for a manually
    dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
    in a contextmenu event handler.
    
    (WebInspector.ContextMenu.prototype.handleEvent):
    Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
    contextmenu event.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    05069040