Index: content/browser/renderer_host/render_widget_host_view_win.h |
diff --git a/content/browser/renderer_host/render_widget_host_view_win.h b/content/browser/renderer_host/render_widget_host_view_win.h |
index 0424f7a18b9b08fc4fd193b60d5619c35496c73f..d1426f600cde2355d644c24d068c66fe3cd2c8fe 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_win.h |
+++ b/content/browser/renderer_host/render_widget_host_view_win.h |
@@ -335,7 +335,9 @@ class RenderWidgetHostViewWin |
DWORD ex_style); |
CPoint GetClientCenter() const; |
- void MoveCursorToCenter() const; |
+ // In mouse lock mode, moves the mouse cursor to the center of the view if it |
+ // is too close to the border. |
+ void MoveCursorToCenterIfNecessary(); |
void HandleLockedMouseEvent(UINT message, WPARAM wparam, LPARAM lparam); |
@@ -479,12 +481,20 @@ class RenderWidgetHostViewWin |
bool is_fullscreen_; |
// Used to record the last position of the mouse. |
- // While the mouse is locked, they store the last known position just as mouse |
- // lock was entered. |
+ // While the mouse is locked, |last_unlocked_mouse_position_| and |
+ // |last_unlocked_global_mouse_position_| store the last known position just |
+ // as mouse lock was entered. |
// Relative to the upper-left corner of the view. |
- gfx::Point last_mouse_position_; |
+ gfx::Point last_unlocked_mouse_position_; |
// Relative to the upper-left corner of the screen. |
- gfx::Point last_global_mouse_position_; |
+ gfx::Point last_unlocked_global_mouse_position_; |
+ // Valid while the mouse is locked. |
+ gfx::Point last_locked_global_mouse_position_; |
+ |
+ // When the mouse cursor is moved to the center of the view by |
+ // MoveCursorToCenterIfNecessary(), we ignore the resulting WM_MOUSEMOVE |
+ // message. |
+ bool ignore_move_to_center_message_; |
// In the case of the mouse being moved away from the view and then moved |
// back, we regard the mouse movement as (0, 0). |