Index: Source/web/WebDevToolsAgentImpl.cpp |
diff --git a/Source/web/WebDevToolsAgentImpl.cpp b/Source/web/WebDevToolsAgentImpl.cpp |
index 52c090d407a1637fa0fa9faedde58e68c662b6cc..03531fc6bd9b07e2f51bd7d04b9806f5fffee2b2 100644 |
--- a/Source/web/WebDevToolsAgentImpl.cpp |
+++ b/Source/web/WebDevToolsAgentImpl.cpp |
@@ -209,6 +209,7 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
, m_touchEventEmulationEnabled(false) |
, m_originalTouchEnabled(false) |
, m_originalDeviceSupportsMouse(false) |
+ , m_originalDeviceSupportsTouch(false) |
{ |
ASSERT(m_hostId > 0); |
ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); |
@@ -389,17 +390,27 @@ void WebDevToolsAgentImpl::setTouchEventEmulationEnabled(bool enabled) |
if (!m_touchEventEmulationEnabled) { |
m_originalTouchEnabled = RuntimeEnabledFeatures::touchEnabled(); |
- if (m_webViewImpl->page()) |
+ if (m_webViewImpl->page()) { |
m_originalDeviceSupportsMouse = m_webViewImpl->page()->settings().deviceSupportsMouse(); |
+ m_originalDeviceSupportsTouch = m_webViewImpl->page()->settings().deviceSupportsTouch(); |
+ } |
} |
RuntimeEnabledFeatures::setTouchEnabled(enabled ? true : m_originalTouchEnabled); |
- if (m_webViewImpl->page()) |
+ if (m_webViewImpl->page()) { |
m_webViewImpl->page()->settings().setDeviceSupportsMouse(enabled ? false : m_originalDeviceSupportsMouse); |
+ m_webViewImpl->page()->settings().setDeviceSupportsTouch(enabled ? true : m_originalDeviceSupportsTouch); |
+ } |
m_client->setTouchEventEmulationEnabled(enabled, m_emulateViewportEnabled); |
m_touchEventEmulationEnabled = enabled; |
m_webViewImpl->mainFrameImpl()->frame()->view()->layout(); |
} |
+bool WebDevToolsAgentImpl::hasTouchInputs() |
+{ |
+ return m_touchEventEmulationEnabled ? m_originalDeviceSupportsTouch : |
+ (m_webViewImpl->page() ? m_webViewImpl->page()->settings().deviceSupportsTouch() : false); |
+} |
+ |
void WebDevToolsAgentImpl::enableViewportEmulation() |
{ |
if (m_emulateViewportEnabled) |