Index: ui/aura/remote_window_tree_host_win.cc |
diff --git a/ui/aura/remote_window_tree_host_win.cc b/ui/aura/remote_window_tree_host_win.cc |
index 14c9bf6fe6cfa77813edeb5ba1900e1fbdf25077..f939ccbf75dbc2eaeafb895126b08b18b864fdd1 100644 |
--- a/ui/aura/remote_window_tree_host_win.cc |
+++ b/ui/aura/remote_window_tree_host_win.cc |
@@ -93,7 +93,7 @@ RemoteWindowTreeHostWin* RemoteWindowTreeHostWin::Instance() { |
RemoteWindowTreeHostWin::RemoteWindowTreeHostWin() |
: remote_window_(NULL), |
host_(NULL), |
- ignore_mouse_moves_until_set_cursor_ack_(false), |
+ ignore_mouse_moves_until_set_cursor_ack_(0), |
event_flags_(0), |
window_size_(aura::WindowTreeHost::GetNativeScreenSize()) { |
CHECK(!g_instance); |
@@ -262,7 +262,7 @@ void RemoteWindowTreeHostWin::MoveCursorToNative(const gfx::Point& location) { |
// this we invoke the SetCursor API in the viewer process and ignore |
// mouse messages until we received an ACK from the viewer indicating that |
// the SetCursor operation completed. |
- ignore_mouse_moves_until_set_cursor_ack_ = true; |
+ ignore_mouse_moves_until_set_cursor_ack_++; |
VLOG(1) << "In MoveCursorTo. Sending IPC"; |
host_->Send(new MetroViewerHostMsg_SetCursorPos(location.x(), location.y())); |
} |
@@ -430,8 +430,8 @@ void RemoteWindowTreeHostWin::OnTouchMoved(int32 x, |
} |
void RemoteWindowTreeHostWin::OnSetCursorPosAck() { |
- DCHECK(ignore_mouse_moves_until_set_cursor_ack_); |
- ignore_mouse_moves_until_set_cursor_ack_ = false; |
+ DCHECK_GT(ignore_mouse_moves_until_set_cursor_ack_, 0); |
+ ignore_mouse_moves_until_set_cursor_ack_--; |
} |
ui::RemoteInputMethodPrivateWin* |