Index: content/browser/renderer_host/render_widget_host_view_win.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc |
index f9fa7e94828e853ec90b7a313736e819148de637..8606cac29a7e1c8c6707125f69b3ace157475a54 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_win.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_win.cc |
@@ -951,8 +951,7 @@ void RenderWidgetHostViewWin::SetBackground(const SkBitmap& background) { |
render_widget_host_->SetBackground(background); |
} |
-void RenderWidgetHostViewWin::ProcessTouchAck( |
- WebKit::WebInputEvent::Type type, bool processed) { |
+void RenderWidgetHostViewWin::ProcessTouchAck(bool processed) { |
DCHECK(render_widget_host_->has_touch_handler() && |
touch_events_enabled_); |
@@ -963,59 +962,35 @@ void RenderWidgetHostViewWin::ProcessTouchAck( |
gestures.reset(gesture_recognizer_->AdvanceTouchQueue(this, processed)); |
ProcessGestures(gestures.get()); |
} |
- |
- if (type == WebKit::WebInputEvent::TouchStart) |
- UpdateDesiredTouchMode(processed); |
-} |
- |
-void RenderWidgetHostViewWin::SetToGestureMode() { |
- if (base::win::GetVersion() < base::win::VERSION_WIN7) |
- return; |
- UnregisterTouchWindow(m_hWnd); |
- // Single finger panning is consistent with other windows applications. |
- const DWORD gesture_allow = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | |
- GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY; |
- const DWORD gesture_block = GC_PAN_WITH_GUTTER; |
- GESTURECONFIG gc[] = { |
- { GID_ZOOM, GC_ZOOM, 0 }, |
- { GID_PAN, gesture_allow , gesture_block}, |
- { GID_TWOFINGERTAP, GC_TWOFINGERTAP , 0}, |
- { GID_PRESSANDTAP, GC_PRESSANDTAP , 0} |
- }; |
- if (!SetGestureConfig(m_hWnd, 0, arraysize(gc), gc, |
- sizeof(GESTURECONFIG))) { |
- NOTREACHED(); |
- } |
- touch_events_enabled_ = false; |
-} |
- |
-bool RenderWidgetHostViewWin::SetToTouchMode() { |
- if (base::win::GetVersion() < base::win::VERSION_WIN7) |
- return false; |
- bool touch_mode = RegisterTouchWindow(m_hWnd, TWF_WANTPALM) == TRUE; |
- touch_events_enabled_ = touch_mode; |
- return touch_mode; |
} |
-void RenderWidgetHostViewWin::UpdateDesiredTouchMode(bool touch_mode) { |
+void RenderWidgetHostViewWin::UpdateDesiredTouchMode() { |
// Make sure that touch events even make sense. |
- bool touch_mode_valid = base::win::GetVersion() >= base::win::VERSION_WIN7 && |
+ static bool touch_mode = base::win::GetVersion() >= base::win::VERSION_WIN7 && |
CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableTouchEvents); |
- touch_mode = touch_mode_valid; |
- // Already in correct mode, nothing to do. |
- if ((touch_mode && touch_events_enabled_) || |
- (!touch_mode && !touch_events_enabled_)) |
+ if (!touch_mode) |
return; |
// Now we know that the window's current state doesn't match the desired |
// state. If we want touch mode, then we attempt to register for touch |
// events, and otherwise to unregister. |
- if (touch_mode) { |
- touch_mode = SetToTouchMode(); |
- } |
- if (!touch_mode) { |
- SetToGestureMode(); |
+ touch_events_enabled_ = RegisterTouchWindow(m_hWnd, TWF_WANTPALM) == TRUE; |
+ |
+ if (!touch_events_enabled_) { |
+ UnregisterTouchWindow(m_hWnd); |
+ // Single finger panning is consistent with other windows applications. |
+ const DWORD gesture_allow = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | |
+ GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY; |
+ const DWORD gesture_block = GC_PAN_WITH_GUTTER; |
+ GESTURECONFIG gc[] = { |
+ { GID_ZOOM, GC_ZOOM, 0 }, |
+ { GID_PAN, gesture_allow , gesture_block}, |
+ { GID_TWOFINGERTAP, GC_TWOFINGERTAP , 0}, |
+ { GID_PRESSANDTAP, GC_PRESSANDTAP , 0} |
+ }; |
+ if (!SetGestureConfig(m_hWnd, 0, arraysize(gc), gc, sizeof(GESTURECONFIG))) |
+ NOTREACHED(); |
} |
} |
@@ -1270,13 +1245,7 @@ LRESULT RenderWidgetHostViewWin::OnCreate(CREATESTRUCT* create_struct) { |
// scrolled when under the mouse pointer even if inactive. |
props_.push_back(ui::SetWindowSupportsRerouteMouseWheel(m_hWnd)); |
- bool touch_enabled = base::win::GetVersion() >= base::win::VERSION_WIN7 && |
- CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableTouchEvents); |
- if (touch_enabled) |
- SetToTouchMode(); |
- else |
- SetToGestureMode(); |
- |
+ UpdateDesiredTouchMode(); |
UpdateIMEState(); |
return 0; |