OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/renderer_host/render_widget_host_view_win.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_win.h" |
6 | 6 |
7 #include <InputScope.h> | 7 #include <InputScope.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
(...skipping 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2065 &touch_event_.touches[touch_event_.touchesLength++]; | 2065 &touch_event_.touches[touch_event_.touchesLength++]; |
2066 point->state = WebKit::WebTouchPoint::StatePressed; | 2066 point->state = WebKit::WebTouchPoint::StatePressed; |
2067 point->id = GetMappedTouch(touch_input->dwID); | 2067 point->id = GetMappedTouch(touch_input->dwID); |
2068 UpdateTouchPoint(point, touch_input); | 2068 UpdateTouchPoint(point, touch_input); |
2069 return point; | 2069 return point; |
2070 } | 2070 } |
2071 | 2071 |
2072 bool WebTouchState::UpdateTouchPoint( | 2072 bool WebTouchState::UpdateTouchPoint( |
2073 WebKit::WebTouchPoint* touch_point, | 2073 WebKit::WebTouchPoint* touch_point, |
2074 TOUCHINPUT* touch_input) { | 2074 TOUCHINPUT* touch_input) { |
2075 CPoint coordinates(TOUCH_COORD_TO_PIXEL(touch_input->x), | 2075 CPoint coordinates( |
2076 TOUCH_COORD_TO_PIXEL(touch_input->y)); | 2076 TOUCH_COORD_TO_PIXEL(touch_input->x) / ui::win::GetDPIScaleFromRegistry(), |
| 2077 TOUCH_COORD_TO_PIXEL(touch_input->y) / ui::win::GetDPIScaleFromRegistry()); |
2077 int radius_x = 1; | 2078 int radius_x = 1; |
2078 int radius_y = 1; | 2079 int radius_y = 1; |
2079 if (touch_input->dwMask & TOUCHINPUTMASKF_CONTACTAREA) { | 2080 if (touch_input->dwMask & TOUCHINPUTMASKF_CONTACTAREA) { |
2080 radius_x = TOUCH_COORD_TO_PIXEL(touch_input->cxContact); | 2081 radius_x = TOUCH_COORD_TO_PIXEL(touch_input->cxContact); |
2081 radius_y = TOUCH_COORD_TO_PIXEL(touch_input->cyContact); | 2082 radius_y = TOUCH_COORD_TO_PIXEL(touch_input->cyContact); |
2082 } | 2083 } |
2083 | 2084 |
2084 // Detect and exclude stationary moves. | 2085 // Detect and exclude stationary moves. |
2085 if (GetTouchType(*touch_input) == TOUCHEVENTF_MOVE && | 2086 if (GetTouchType(*touch_input) == TOUCHEVENTF_MOVE && |
2086 touch_point->screenPosition.x == coordinates.x && | 2087 touch_point->screenPosition.x == coordinates.x && |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2133 | 2134 |
2134 if (!total || !GetTouchInputInfo((HTOUCHINPUT)lparam, total, | 2135 if (!total || !GetTouchInputInfo((HTOUCHINPUT)lparam, total, |
2135 points, sizeof(TOUCHINPUT))) { | 2136 points, sizeof(TOUCHINPUT))) { |
2136 TRACE_EVENT0("browser", "EarlyOut_NothingToDo"); | 2137 TRACE_EVENT0("browser", "EarlyOut_NothingToDo"); |
2137 return 0; | 2138 return 0; |
2138 } | 2139 } |
2139 | 2140 |
2140 if (total == 1 && (points[0].dwFlags & TOUCHEVENTF_DOWN)) { | 2141 if (total == 1 && (points[0].dwFlags & TOUCHEVENTF_DOWN)) { |
2141 pointer_down_context_ = true; | 2142 pointer_down_context_ = true; |
2142 last_touch_location_ = gfx::Point( | 2143 last_touch_location_ = gfx::Point( |
2143 TOUCH_COORD_TO_PIXEL(points[0].x), | 2144 TOUCH_COORD_TO_PIXEL(points[0].x) / ui::win::GetDPIScaleFromRegistry(), |
2144 TOUCH_COORD_TO_PIXEL(points[0].y)); | 2145 TOUCH_COORD_TO_PIXEL(points[0].y) / ui::win::GetDPIScaleFromRegistry()); |
2145 } | 2146 } |
2146 | 2147 |
2147 bool should_forward = render_widget_host_->ShouldForwardTouchEvent() && | 2148 bool should_forward = render_widget_host_->ShouldForwardTouchEvent() && |
2148 touch_events_enabled_; | 2149 touch_events_enabled_; |
2149 | 2150 |
2150 // Send a copy of the touch events on to the gesture recognizer. | 2151 // Send a copy of the touch events on to the gesture recognizer. |
2151 for (size_t start = 0; start < total;) { | 2152 for (size_t start = 0; start < total;) { |
2152 start += touch_state_->UpdateTouchPoints(points + start, total - start); | 2153 start += touch_state_->UpdateTouchPoints(points + start, total - start); |
2153 if (should_forward) { | 2154 if (should_forward) { |
2154 if (touch_state_->is_changed()) | 2155 if (touch_state_->is_changed()) |
(...skipping 935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3090 return new RenderWidgetHostViewWin(widget); | 3091 return new RenderWidgetHostViewWin(widget); |
3091 } | 3092 } |
3092 | 3093 |
3093 // static | 3094 // static |
3094 void RenderWidgetHostViewPort::GetDefaultScreenInfo( | 3095 void RenderWidgetHostViewPort::GetDefaultScreenInfo( |
3095 WebKit::WebScreenInfo* results) { | 3096 WebKit::WebScreenInfo* results) { |
3096 GetScreenInfoForWindow(results, 0); | 3097 GetScreenInfoForWindow(results, 0); |
3097 } | 3098 } |
3098 | 3099 |
3099 } // namespace content | 3100 } // namespace content |
OLD | NEW |