summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-11-14 17:45:13 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-11-22 00:14:00 +0000
commit5fac32e6653e713f6e3e65e02e5c1b81df56c075 (patch)
tree11feb123aee15aa2ad3478962ec03322c0ab89ee
parent55181670c621dfd79d0bb05738cb5b59665e6bd7 (diff)
Fix emulated touch events
Touch events now does hit-testing based on surface, so we need to register outselves as a surface to have touch events do anything. Fixes: QTBUG-71801 Change-Id: Iafd43dfcecf029f9c11e0c0c58a349ff38badbaa Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--src/core/render_widget_host_view_qt.cpp9
-rw-r--r--src/core/render_widget_host_view_qt.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index bc41337d9..af7471759 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -54,6 +54,7 @@
#include "content/browser/frame_host/frame_tree.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/common/content_switches_internal.h"
+#include "content/browser/renderer_host/render_widget_host_input_event_router.h"
#include "content/common/cursors/webcursor.h"
#include "content/common/input_messages.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -274,6 +275,9 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost *widget
, m_wheelAckPending(false)
, m_pendingResize(false)
, m_mouseWheelPhaseHandler(this)
+ // This frame-sink id is based on what RenderWidgetHostViewChildFrame does:
+ , m_frameSinkId(base::checked_cast<uint32_t>(widget->GetProcess()->GetID()),
+ base::checked_cast<uint32_t>(widget->GetRoutingID()))
{
host()->SetView(this);
#ifndef QT_NO_ACCESSIBILITY
@@ -291,6 +295,9 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost *widget
m_imeHasHiddenTextCapability = context && context->hasCapability(QPlatformInputContext::HiddenTextCapability);
m_localSurfaceId = m_localSurfaceIdAllocator.GenerateId();
+
+ if (host()->delegate() && host()->delegate()->GetInputEventRouter())
+ host()->delegate()->GetInputEventRouter()->AddFrameSinkIdOwner(GetFrameSinkId(), this);
}
RenderWidgetHostViewQt::~RenderWidgetHostViewQt()
@@ -1682,7 +1689,7 @@ viz::SurfaceId RenderWidgetHostViewQt::GetCurrentSurfaceId() const
const viz::FrameSinkId &RenderWidgetHostViewQt::GetFrameSinkId() const
{
- return viz::FrameSinkIdAllocator::InvalidFrameSinkId();
+ return m_frameSinkId;
}
const viz::LocalSurfaceId &RenderWidgetHostViewQt::GetLocalSurfaceId() const
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 6dd4d57e5..a12ffe636 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -268,6 +268,7 @@ private:
bool m_pendingResize;
QList<blink::WebMouseWheelEvent> m_pendingWheelEvents;
content::MouseWheelPhaseHandler m_mouseWheelPhaseHandler;
+ viz::FrameSinkId m_frameSinkId;
uint32_t m_latestCaptureSequenceNumber = 0u;
std::string m_editCommand;