| Index: Source/web/InspectorOverlayImpl.cpp
|
| diff --git a/Source/web/InspectorOverlayImpl.cpp b/Source/web/InspectorOverlayImpl.cpp
|
| index 3845661139a00460cfb68d79f9c338205c3cf0bb..9b724f1b2cbae523624395613d408b12c5b05b14 100644
|
| --- a/Source/web/InspectorOverlayImpl.cpp
|
| +++ b/Source/web/InspectorOverlayImpl.cpp
|
| @@ -109,6 +109,7 @@ public:
|
| void suspendUpdates() override { }
|
| void resumeUpdates() override { }
|
| void clear() override { }
|
| + LayoutEditor* layoutEditor() { return nullptr; }
|
| };
|
|
|
| DEFINE_TRACE(InspectorOverlayStub)
|
| @@ -134,8 +135,10 @@ InspectorOverlayImpl::InspectorOverlayImpl(WebViewImpl* webViewImpl)
|
| , m_timer(this, &InspectorOverlayImpl::onTimer)
|
| , m_suspendCount(0)
|
| , m_updating(false)
|
| + , m_layoutEditor(LayoutEditor::create())
|
| {
|
| m_overlayHost->setListener(this);
|
| + m_overlayHost->setLayoutEditorListener(m_layoutEditor.get());
|
| }
|
|
|
| InspectorOverlayImpl::~InspectorOverlayImpl()
|
| @@ -177,8 +180,9 @@ void InspectorOverlayImpl::invalidate()
|
|
|
| bool InspectorOverlayImpl::handleInputEvent(const WebInputEvent& inputEvent)
|
| {
|
| + bool handled = false;
|
| if (isEmpty())
|
| - return false;
|
| + return handled;
|
|
|
| if (WebInputEvent::isGestureEventType(inputEvent.type) && inputEvent.type == WebInputEvent::GestureTap) {
|
| // Only let GestureTab in (we only need it and we know PlatformGestureEventBuilder supports it).
|
| @@ -189,11 +193,11 @@ bool InspectorOverlayImpl::handleInputEvent(const WebInputEvent& inputEvent)
|
| // PlatformMouseEventBuilder does not work with MouseEnter type, so we filter it out manually.
|
| PlatformMouseEvent mouseEvent = PlatformMouseEventBuilder(m_webViewImpl->mainFrameImpl()->frameView(), static_cast<const WebMouseEvent&>(inputEvent));
|
| if (mouseEvent.type() == PlatformEvent::MouseMoved)
|
| - overlayMainFrame()->eventHandler().handleMouseMoveEvent(mouseEvent);
|
| + handled = overlayMainFrame()->eventHandler().handleMouseMoveEvent(mouseEvent);
|
| if (mouseEvent.type() == PlatformEvent::MousePressed)
|
| - overlayMainFrame()->eventHandler().handleMousePressEvent(mouseEvent);
|
| + handled = overlayMainFrame()->eventHandler().handleMousePressEvent(mouseEvent);
|
| if (mouseEvent.type() == PlatformEvent::MouseReleased)
|
| - overlayMainFrame()->eventHandler().handleMouseReleaseEvent(mouseEvent);
|
| + handled = overlayMainFrame()->eventHandler().handleMouseReleaseEvent(mouseEvent);
|
| }
|
| if (WebInputEvent::isTouchEventType(inputEvent.type)) {
|
| PlatformTouchEvent touchEvent = PlatformTouchEventBuilder(m_webViewImpl->mainFrameImpl()->frameView(), static_cast<const WebTouchEvent&>(inputEvent));
|
| @@ -204,8 +208,7 @@ bool InspectorOverlayImpl::handleInputEvent(const WebInputEvent& inputEvent)
|
| overlayMainFrame()->eventHandler().keyEvent(keyboardEvent);
|
| }
|
|
|
| - // Overlay should not consume events.
|
| - return false;
|
| + return handled;
|
| }
|
|
|
| void InspectorOverlayImpl::setPausedInDebuggerMessage(const String* message)
|
| @@ -222,10 +225,10 @@ void InspectorOverlayImpl::setInspectModeEnabled(bool enabled)
|
|
|
| void InspectorOverlayImpl::hideHighlight()
|
| {
|
| + m_layoutEditor->setNode(nullptr);
|
| m_highlightNode.clear();
|
| m_eventTargetNode.clear();
|
| m_highlightQuad.clear();
|
| - m_layoutEditor.clear();
|
| update();
|
| }
|
|
|
| @@ -234,7 +237,7 @@ void InspectorOverlayImpl::highlightNode(Node* node, Node* eventTarget, const In
|
| m_nodeHighlightConfig = highlightConfig;
|
| m_highlightNode = node;
|
| if (highlightConfig.showLayoutEditor)
|
| - m_layoutEditor = LayoutEditor::create(node);
|
| + m_layoutEditor->setNode(node);
|
| m_eventTargetNode = eventTarget;
|
| m_omitTooltip = omitTooltip;
|
| update();
|
|
|