| Index: content/browser/renderer_host/legacy_render_widget_host_win.cc
|
| diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.cc b/content/browser/renderer_host/legacy_render_widget_host_win.cc
|
| index 5126ad2bc2da97d1c829ad9f6913ecaeb5de0424..8dcdaf63c98cd899bbae46fbbcb7a77e848774ce 100644
|
| --- a/content/browser/renderer_host/legacy_render_widget_host_win.cc
|
| +++ b/content/browser/renderer_host/legacy_render_widget_host_win.cc
|
| @@ -18,6 +18,7 @@
|
| #include "ui/base/win/internal_constants.h"
|
| #include "ui/base/win/window_event_target.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| +#include "ui/gfx/win/direct_manipulation.h"
|
| #include "ui/gfx/win/dpi.h"
|
|
|
| namespace content {
|
| @@ -75,6 +76,8 @@ HWND LegacyRenderWidgetHostHWND::GetParent() {
|
|
|
| void LegacyRenderWidgetHostHWND::Show() {
|
| ::ShowWindow(hwnd(), SW_SHOW);
|
| + if (direct_manipulation_helper_)
|
| + direct_manipulation_helper_->Activate(hwnd());
|
| }
|
|
|
| void LegacyRenderWidgetHostHWND::Hide() {
|
| @@ -86,6 +89,8 @@ void LegacyRenderWidgetHostHWND::SetBounds(const gfx::Rect& bounds) {
|
| ::SetWindowPos(hwnd(), NULL, bounds_in_pixel.x(), bounds_in_pixel.y(),
|
| bounds_in_pixel.width(), bounds_in_pixel.height(),
|
| SWP_NOREDRAW);
|
| + if (direct_manipulation_helper_)
|
| + direct_manipulation_helper_->SetBounds(bounds_in_pixel);
|
| }
|
|
|
| void LegacyRenderWidgetHostHWND::OnFinalMessage(HWND hwnd) {
|
| @@ -126,6 +131,13 @@ bool LegacyRenderWidgetHostHWND::Init() {
|
| CHILDID_SELF);
|
| }
|
|
|
| + // Direct Manipulation is enabled on Windows 10+. The CreateInstance function
|
| + // returns NULL if Direct Manipulation is not available.
|
| + direct_manipulation_helper_ =
|
| + gfx::win::DirectManipulationHelper::CreateInstance();
|
| + if (direct_manipulation_helper_)
|
| + direct_manipulation_helper_->Initialize(hwnd());
|
| +
|
| return !!SUCCEEDED(hr);
|
| }
|
|
|
| @@ -242,6 +254,12 @@ LRESULT LegacyRenderWidgetHostHWND::OnMouseRange(UINT message,
|
| handled = TRUE;
|
| }
|
| }
|
| +
|
| + if (direct_manipulation_helper_ &&
|
| + (message == WM_MOUSEWHEEL || message == WM_MOUSEHWHEEL)) {
|
| + direct_manipulation_helper_->HandleMouseWheel(hwnd(), message, w_param,
|
| + l_param);
|
| + }
|
| return ret;
|
| }
|
|
|
|
|