summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2019-08-27 09:42:34 +0200
committerJüri Valdmann <juri.valdmann@qt.io>2019-09-13 12:41:57 +0200
commitffbb8cd7cd6bc8b6ff0c73e3fc45cb2f74e0f4c2 (patch)
tree66441155c90836035d7ff54ac7624048628860e3
parent8daefcfd8e1bf41ae4d06c7a79a526b81a78dc58 (diff)
Fix RenderWidgetHostViewQt::SetNeedsBeginFrames
Turns out this is needed also in viz mode for fling gestures. Fixes: QTBUG-77861 Change-Id: I6fe9d37e00e6a7fd17280d76273527066cc879a4 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
-rw-r--r--src/core/delegated_frame_host_client_qt.cpp1
-rw-r--r--src/core/render_widget_host_view_qt.cpp15
-rw-r--r--src/core/render_widget_host_view_qt.h2
3 files changed, 16 insertions, 2 deletions
diff --git a/src/core/delegated_frame_host_client_qt.cpp b/src/core/delegated_frame_host_client_qt.cpp
index d3f5a4ade..817ea2fa5 100644
--- a/src/core/delegated_frame_host_client_qt.cpp
+++ b/src/core/delegated_frame_host_client_qt.cpp
@@ -61,6 +61,7 @@ SkColor DelegatedFrameHostClientQt::DelegatedFrameHostGetGutterColor() const
void DelegatedFrameHostClientQt::OnBeginFrame(base::TimeTicks frame_time)
{
p->host()->ProgressFlingIfNeeded(frame_time);
+ p->UpdateNeedsBeginFramesInternal();
}
void DelegatedFrameHostClientQt::OnFrameTokenChanged(uint32_t frame_token)
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 2918fd8bc..e741962fb 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -280,6 +280,7 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost *widget
, m_touchMotionStarted(false)
, m_enableViz(features::IsVizDisplayCompositorEnabled())
, m_visible(false)
+ , m_needsBeginFrames(false)
, m_loadVisuallyCommittedState(NotCommitted)
, m_adapterClient(0)
, m_imeInProgress(false)
@@ -1741,8 +1742,8 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev)
void RenderWidgetHostViewQt::SetNeedsBeginFrames(bool needs_begin_frames)
{
- DCHECK(!m_enableViz);
- m_compositor->setNeedsBeginFrames(needs_begin_frames);
+ m_needsBeginFrames = needs_begin_frames;
+ UpdateNeedsBeginFramesInternal();
}
content::RenderFrameHost *RenderWidgetHostViewQt::getFocusedFrameHost()
@@ -1777,6 +1778,8 @@ ui::TextInputType RenderWidgetHostViewQt::getTextInputType() const
void RenderWidgetHostViewQt::SetWantsAnimateOnlyBeginFrames()
{
+ if (m_enableViz)
+ m_delegatedFrameHost->SetWantsAnimateOnlyBeginFrames();
}
viz::SurfaceId RenderWidgetHostViewQt::GetCurrentSurfaceId() const
@@ -1877,4 +1880,12 @@ std::unique_ptr<content::SyntheticGestureTarget> RenderWidgetHostViewQt::CreateS
return nullptr;
}
+void RenderWidgetHostViewQt::UpdateNeedsBeginFramesInternal()
+{
+ if (m_enableViz)
+ m_delegatedFrameHost->SetNeedsBeginFrames(m_needsBeginFrames);
+ else
+ m_compositor->setNeedsBeginFrames(m_needsBeginFrames);
+}
+
} // namespace QtWebEngineCore
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 5935f477a..b5f2d65bb 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -214,6 +214,7 @@ public:
void ShowDefinitionForSelection() override { QT_NOT_YET_IMPLEMENTED }
#endif // defined(OS_MACOSX)
+ void UpdateNeedsBeginFramesInternal();
// Overridden from content::BrowserAccessibilityDelegate
content::BrowserAccessibilityManager* CreateBrowserAccessibilityManager(content::BrowserAccessibilityDelegate* delegate, bool for_root_frame) override;
@@ -269,6 +270,7 @@ private:
const bool m_enableViz;
bool m_visible;
+ bool m_needsBeginFrames;
DelegatedFrameHostClientQt m_delegatedFrameHostClient{this};
std::unique_ptr<content::DelegatedFrameHost> m_delegatedFrameHost;
std::unique_ptr<ui::Layer> m_rootLayer;