From 7db70f1e85f628f78df84eb195473fb315e812fe Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 23 Oct 2018 17:29:19 +0200 Subject: Implement CopyFromSurface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Means we can get screenshots in devtools. Change-Id: I7b50d6ac5a54d236573bcf5f58ae872bd50dccad Reviewed-by: Jüri Valdmann --- src/core/render_widget_host_view_qt.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/core/render_widget_host_view_qt.cpp') diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 1c5382fe7..9706ac070 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -403,7 +403,18 @@ bool RenderWidgetHostViewQt::HasFocus() const bool RenderWidgetHostViewQt::IsSurfaceAvailableForCopy() const { - return false; + return true; +} + +void RenderWidgetHostViewQt::CopyFromSurface(const gfx::Rect &src_rect, + const gfx::Size &output_size, + base::OnceCallback callback) +{ + QImage image; + if (m_delegate->copySurface(toQt(src_rect), toQt(output_size), image)) + std::move(callback).Run(toSkBitmap(image)); + else + std::move(callback).Run(SkBitmap()); } void RenderWidgetHostViewQt::Show() -- cgit v1.2.3 From 20238f2c472af7b94d48a837d7723a209a87fd9e Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 14 Nov 2018 16:29:35 +0100 Subject: Fix autoscrolling We were missing the connection between on begin frame and progressing auto-scroll. Change-Id: I651b35c031afedc9aeef1dc6a16547757b869633 Fixes: QTBUG-71370 Reviewed-by: Alexandru Croitor --- src/core/render_widget_host_view_qt.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/core/render_widget_host_view_qt.cpp') diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 9706ac070..4ed62504f 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -260,7 +260,7 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost *widget , m_gestureProvider(QtGestureProviderConfig(), this) , m_sendMotionActionDown(false) , m_touchMotionStarted(false) - , m_compositor(new Compositor) + , m_compositor(new Compositor(this)) , m_loadVisuallyCommittedState(NotCommitted) , m_adapterClient(0) , m_imeInProgress(false) @@ -1637,6 +1637,11 @@ void RenderWidgetHostViewQt::SetNeedsBeginFrames(bool needs_begin_frames) m_compositor->setNeedsBeginFrames(needs_begin_frames); } +void RenderWidgetHostViewQt::OnBeginFrame(base::TimeTicks frame_time) +{ + host()->ProgressFlingIfNeeded(frame_time); +} + content::RenderFrameHost *RenderWidgetHostViewQt::getFocusedFrameHost() { content::RenderViewHostImpl *viewHost = content::RenderViewHostImpl::From(host()); -- cgit v1.2.3 From b2f43ac03326bed8f8890998be510f83dc58b68c Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 6 Nov 2018 14:14:53 +0100 Subject: Speculative fix for disable-pinch not working Introduces logic from render_widget_host_view_android.cc to ignore pinch gestures when pinch is disabled. Fixes: QTBUG-70913 Change-Id: Ib88c423c248148afdb2d203f89ab90c63b32012c Reviewed-by: Allan Sandfeld Jensen --- src/core/render_widget_host_view_qt.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/core/render_widget_host_view_qt.cpp') diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 4ed62504f..bc41337d9 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -53,6 +53,7 @@ #include "content/browser/frame_host/render_frame_host_impl.h" #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/common/cursors/webcursor.h" #include "content/common/input_messages.h" #include "third_party/skia/include/core/SkColor.h" @@ -880,6 +881,13 @@ void RenderWidgetHostViewQt::selectionChanged() void RenderWidgetHostViewQt::OnGestureEvent(const ui::GestureEventData& gesture) { + if ((gesture.type() == ui::ET_GESTURE_PINCH_BEGIN + || gesture.type() == ui::ET_GESTURE_PINCH_UPDATE + || gesture.type() == ui::ET_GESTURE_PINCH_END) + && !content::IsPinchToZoomEnabled()) { + return; + } + host()->ForwardGestureEvent(ui::CreateWebGestureEventFromGestureEventData(gesture)); } -- cgit v1.2.3