| 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..bb289ad15f38cf5fff0df9b3b6f3b6cd3c9e4593 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_(),
|
| @@ -1747,12 +1748,14 @@ void RenderWidgetHostImpl::ImeCancelComposition() {
|
| gfx::Range::InvalidRange(), 0, 0));
|
| }
|
|
|
| -void RenderWidgetHostImpl::RejectMouseLockOrUnlockIfNecessary() {
|
| +void RenderWidgetHostImpl::RejectMouseLockOrUnlockIfNecessary(
|
| + bool is_unlocked_by_target) {
|
| DCHECK(!pending_mouse_lock_request_ || !IsMouseLocked());
|
| if (pending_mouse_lock_request_) {
|
| pending_mouse_lock_request_ = false;
|
| Send(new ViewMsg_LockMouse_ACK(routing_id_, false));
|
| } else if (IsMouseLocked()) {
|
| + is_last_unlocked_by_target_ = is_unlocked_by_target;
|
| view_->UnlockMouse();
|
| }
|
| }
|
| @@ -2068,7 +2071,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 +2079,10 @@ 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_);
|
| + is_last_unlocked_by_target_ = false;
|
| return;
|
| }
|
|
|
| @@ -2092,7 +2096,7 @@ void RenderWidgetHostImpl::OnLockMouse(bool user_gesture,
|
| }
|
|
|
| void RenderWidgetHostImpl::OnUnlockMouse() {
|
| - RejectMouseLockOrUnlockIfNecessary();
|
| + RejectMouseLockOrUnlockIfNecessary(true);
|
| }
|
|
|
| void RenderWidgetHostImpl::OnShowDisambiguationPopup(
|
|
|