DescriptionEnsure on Windows AURA that the cursor stays within the bounds of the window during a LockMouse operation and
is unclipped during the UnlockMouse operation.
On Windows we can ensure that the cursor stays within the bounds of a window via the ClipCursor API.
Changes in this CL are as below:-
1. The cursor is clipped in the RootWindowHost::ConfineCursorToRootWindow abstraction and is unclipped in the
RootWindowHost::UnConfineCursor abstraction. Currently these functions are only implemented on Windows in
the DesktopRootWindowHostWin class.
2. Added an accessor method UnConfineCursor to the RootWindow class which forwards this call to the RootWindowHost.
This is on the same lines as the ConfineCursorToWindow method in the RootWindow class.
3. We need to explicitly hide the cursor on Windows via the ShowCursor API. This is done in the
DesktopRootWindowHostWin::OnCursorVisibilityChanged function.
4. If we receive non client messages in the RenderWidgetHostViewAura class in the locked mouse state, we should move
the cursor to the center and return. If we don't do this then it causes DCHECKs to fire in the webkit mouse event
conversion code. In any case non client messages should not be sent to webkit.
Fixes bug https://code.google.com/p/chromium/issues/detail?id=305563
BUG=305563
R=scheib@chromium.org, sky@chromium.org
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=232176
Patch Set 1 #Patch Set 2 : #
Total comments: 3
Patch Set 3 : #Patch Set 4 : #Patch Set 5 : #Patch Set 6 : #
Total comments: 2
Patch Set 7 : #
Total comments: 4
Patch Set 8 : #
Messages
Total messages: 14 (0 generated)
|