Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2270)

Unified Diff: ui/views/win/hwnd_message_handler.cc

Issue 11773007: Add initial support for handling touch events in desktop chrome AURA. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/win/hwnd_message_handler.cc
===================================================================
--- ui/views/win/hwnd_message_handler.cc (revision 174871)
+++ ui/views/win/hwnd_message_handler.cc (working copy)
@@ -295,6 +295,10 @@
// The thickness of an auto-hide taskbar in pixels.
const int kAutoHideTaskbarThicknessPx = 2;
+// The touch id to be used for touch events coming in from Windows Aura
+// Desktop.
+const int kDesktopChromeAuraTouchId = 9;
sky 2013/01/07 15:53:45 Do we need to make sure this doesn't conflict with
ananta 2013/01/08 00:50:22 We shouldn't be conflicting with anything. We have
+
} // namespace
// A scoping class that prevents a window from being able to redraw in response
@@ -1974,10 +1978,27 @@
if (GetTouchInputInfo(reinterpret_cast<HTOUCHINPUT>(l_param),
num_points, input.get(), sizeof(TOUCHINPUT))) {
for (int i = 0; i < num_points; ++i) {
- if (input[i].dwFlags & TOUCHEVENTF_DOWN)
+ ui::EventType touch_event_type = ui::ET_UNKNOWN;
+
+ if (input[i].dwFlags & TOUCHEVENTF_DOWN) {
touch_ids_.insert(input[i].dwID);
- if (input[i].dwFlags & TOUCHEVENTF_UP)
+ touch_event_type = ui::ET_TOUCH_PRESSED;
+ } else if (input[i].dwFlags & TOUCHEVENTF_UP) {
touch_ids_.erase(input[i].dwID);
+ touch_event_type = ui::ET_TOUCH_RELEASED;
+ } else if (input[i].dwFlags & TOUCHEVENTF_MOVE) {
+ touch_event_type = ui::ET_TOUCH_MOVED;
+ }
+
+ if (touch_event_type != ui::ET_UNKNOWN) {
+ ui::TouchEvent event(
+ touch_event_type,
+ gfx::Point(TOUCH_COORD_TO_PIXEL(input[i].x),
+ TOUCH_COORD_TO_PIXEL(input[i].y)),
+ kDesktopChromeAuraTouchId,
+ base::TimeDelta::FromMilliseconds(input[i].dwTime));
+ delegate_->HandleTouchEvent(event);
+ }
}
}
CloseTouchInputHandle(reinterpret_cast<HTOUCHINPUT>(l_param));

Powered by Google App Engine
This is Rietveld 408576698