summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authorsky <sky@chromium.org>2015-03-30 16:28:16 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-30 23:30:01 +0000
commit0ef88bbcbfba77dad3994f35ab862776c1e8b0ed (patch)
tree85f7e2065dfeeb9b02579bfbcf56c33d5e0acf58 /mojo
parentcef6988c83f40f8f50d93819de2c98f3406ba424 (diff)
downloadchromium_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.cc14
-rw-r--r--mojo/services/html_viewer/html_document.h2
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);
};