| Index: content/browser/renderer_host/render_widget_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
|
| index 610567e43a9f72e1ced93032dc903e0581b9a79c..6ab8a0190d238e0f7f2e083d5e5a094e5603a770 100644
|
| --- a/content/browser/renderer_host/render_widget_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
| @@ -286,6 +286,7 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
|
| suppress_events_until_keydown_(false),
|
| pending_mouse_lock_request_(false),
|
| allow_privileged_mouse_lock_(false),
|
| + is_last_unlocked_by_target_(false),
|
| has_touch_handler_(false),
|
| is_in_touchpad_gesture_fling_(false),
|
| latency_tracker_(),
|
| @@ -2068,7 +2069,6 @@ void RenderWidgetHostImpl::OnImeCancelComposition() {
|
| }
|
|
|
| void RenderWidgetHostImpl::OnLockMouse(bool user_gesture,
|
| - bool last_unlocked_by_target,
|
| bool privileged) {
|
| if (pending_mouse_lock_request_) {
|
| Send(new ViewMsg_LockMouse_ACK(routing_id_, false));
|
| @@ -2077,8 +2077,12 @@ void RenderWidgetHostImpl::OnLockMouse(bool user_gesture,
|
|
|
| pending_mouse_lock_request_ = true;
|
| if (delegate_) {
|
| - delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target,
|
| + delegate_->RequestToLockMouse(this, user_gesture,
|
| + is_last_unlocked_by_target_,
|
| privileged && allow_privileged_mouse_lock_);
|
| + // We need to reset |is_last_unlocked_by_target_| here as we don't know
|
| + // request source in |LostMouseLock()|.
|
| + is_last_unlocked_by_target_ = false;
|
| return;
|
| }
|
|
|
| @@ -2092,7 +2096,12 @@ void RenderWidgetHostImpl::OnLockMouse(bool user_gesture,
|
| }
|
|
|
| void RenderWidgetHostImpl::OnUnlockMouse() {
|
| + // Got unlock request from renderer. Will update |is_last_unlocked_by_target_|
|
| + // for silent re-lock.
|
| + const bool was_mouse_locked = !pending_mouse_lock_request_ && IsMouseLocked();
|
| RejectMouseLockOrUnlockIfNecessary();
|
| + if (was_mouse_locked)
|
| + is_last_unlocked_by_target_ = true;
|
| }
|
|
|
| void RenderWidgetHostImpl::OnShowDisambiguationPopup(
|
|
|