summaryrefslogtreecommitdiffstats
path: root/src/core/render_widget_host_view_qt.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-11-16 14:57:44 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-11-16 14:57:44 +0100
commitef177a48f2c6c41549ef9d11a985ab2661942638 (patch)
treed6bc5aa8cbde95d9e9857ead4b509e8b04b524b9 /src/core/render_widget_host_view_qt.cpp
parent396ca081d7b0d9dab7de14ebaec7943c3f857a24 (diff)
parente5bc5a6dbdd915e0b19cfc43e7af17e43c1a7878 (diff)
Merge branch '5.12' into dev
Conflicts: src/core/compositor/compositor.cpp src/core/compositor/compositor.h Change-Id: I8a4d73d728d93d95e499849f8778cc88dda2105e
Diffstat (limited to 'src/core/render_widget_host_view_qt.cpp')
-rw-r--r--src/core/render_widget_host_view_qt.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index bac9dd6cf..31a145b44 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"
@@ -260,7 +261,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)
@@ -402,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<void(const SkBitmap &)> 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()
@@ -870,6 +882,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));
}
@@ -1627,6 +1646,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());