diff options
author | sky <sky@chromium.org> | 2015-03-30 16:28:16 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-30 23:30:01 +0000 |
commit | 0ef88bbcbfba77dad3994f35ab862776c1e8b0ed (patch) | |
tree | 85f7e2065dfeeb9b02579bfbcf56c33d5e0acf58 /mojo | |
parent | cef6988c83f40f8f50d93819de2c98f3406ba424 (diff) | |
download | chromium_src-0ef88bbcbfba77dad3994f35ab862776c1e8b0ed.zip chromium_src-0ef88bbcbfba77dad3994f35ab862776c1e8b0ed.tar.gz chromium_src-0ef88bbcbfba77dad3994f35ab862776c1e8b0ed.tar.bz2 |
Converts events to DIPs in html_viewer
Apparently Blink wants them in DIPs.
R=erg@chromium.org
BUG=none
TEST=none
Review URL: https://codereview.chromium.org/1044463006
Cr-Commit-Position: refs/heads/master@{#322905}
Diffstat (limited to 'mojo')
-rw-r--r-- | mojo/services/html_viewer/html_document.cc | 14 | ||||
-rw-r--r-- | mojo/services/html_viewer/html_document.h | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/mojo/services/html_viewer/html_document.cc b/mojo/services/html_viewer/html_document.cc index 03fd111..dddf3b8 100644 --- a/mojo/services/html_viewer/html_document.cc +++ b/mojo/services/html_viewer/html_document.cc @@ -112,7 +112,8 @@ HTMLDocument::HTMLDocument( view_manager_client_factory_(shell_, this), compositor_thread_(compositor_thread), web_media_player_factory_(web_media_player_factory), - is_headless_(is_headless) { + is_headless_(is_headless), + device_pixel_ratio_(1.0) { exported_services_.AddService(this); exported_services_.AddService(&view_manager_client_factory_); exported_services_.Bind(services.Pass()); @@ -176,7 +177,8 @@ void HTMLDocument::Load(URLResponsePtr response) { } void HTMLDocument::UpdateWebviewSizeFromViewSize() { - web_view_->setDeviceScaleFactor(root_->viewport_metrics().device_pixel_ratio); + device_pixel_ratio_ = root_->viewport_metrics().device_pixel_ratio; + web_view_->setDeviceScaleFactor(device_pixel_ratio_); const gfx::Size size_in_pixels(root_->bounds().width, root_->bounds().height); const gfx::Size size_in_dips = gfx::ConvertSizeToDIP( root_->viewport_metrics().device_pixel_ratio, size_in_pixels); @@ -323,6 +325,14 @@ void HTMLDocument::OnViewDestroyed(View* view) { } void HTMLDocument::OnViewInputEvent(View* view, const mojo::EventPtr& event) { + if (event->pointer_data) { + // Blink expects coordintes to be in DIPs. + event->pointer_data->x /= device_pixel_ratio_; + event->pointer_data->y /= device_pixel_ratio_; + event->pointer_data->screen_x /= device_pixel_ratio_; + event->pointer_data->screen_y /= device_pixel_ratio_; + } + if ((event->action == mojo::EVENT_TYPE_POINTER_DOWN || event->action == mojo::EVENT_TYPE_POINTER_UP || event->action == mojo::EVENT_TYPE_POINTER_CANCEL || diff --git a/mojo/services/html_viewer/html_document.h b/mojo/services/html_viewer/html_document.h index ce5e7c2..c5882f3 100644 --- a/mojo/services/html_viewer/html_document.h +++ b/mojo/services/html_viewer/html_document.h @@ -156,6 +156,8 @@ class HTMLDocument : public blink::WebViewClient, scoped_ptr<TouchHandler> touch_handler_; + float device_pixel_ratio_; + DISALLOW_COPY_AND_ASSIGN(HTMLDocument); }; |