Index: content/browser/renderer_host/render_widget_host.cc |
diff --git a/content/browser/renderer_host/render_widget_host.cc b/content/browser/renderer_host/render_widget_host.cc |
index 01077f770a631292037d2f0339ef4fcc7748da86..dd7f10b634880ff1ce40d2d12d8ae19b429938ca 100644 |
--- a/content/browser/renderer_host/render_widget_host.cc |
+++ b/content/browser/renderer_host/render_widget_host.cc |
@@ -383,8 +383,7 @@ void RenderWidgetHost::Focus() { |
} |
void RenderWidgetHost::Blur() { |
sky
2011/09/28 22:58:04
What if the user minimizes the window when you hav
yzshen1
2011/09/29 20:41:04
Chrome will lose focus so it exits the mouse lock
|
- if (IsMouseLocked()) |
- view_->UnlockMouse(); |
+ UnlockMouseIfNecessary(); |
Send(new ViewMsg_SetFocus(routing_id_, false)); |
} |
@@ -398,8 +397,7 @@ void RenderWidgetHost::LostMouseLock() { |
} |
void RenderWidgetHost::ViewDestroyed() { |
- if (IsMouseLocked()) |
- view_->UnlockMouse(); |
+ UnlockMouseIfNecessary(); |
// TODO(evanm): tracking this may no longer be necessary; |
// eliminate this function if so. |
@@ -801,6 +799,15 @@ void RenderWidgetHost::ImeCancelComposition() { |
std::vector<WebKit::WebCompositionUnderline>(), 0, 0)); |
} |
+bool RenderWidgetHost::HasMouseLockPermission() const { |
+ return false; |
+} |
+ |
+void RenderWidgetHost::UnlockMouseIfNecessary() { |
+ if (IsMouseLocked()) |
+ view_->UnlockMouse(); |
+} |
+ |
bool RenderWidgetHost::IsMouseLocked() const { |
return view_ ? view_->mouse_locked() : false; |
} |
@@ -1151,9 +1158,8 @@ void RenderWidgetHost::OnMsgDidActivateAcceleratedCompositing(bool activated) { |
} |
void RenderWidgetHost::OnMsgLockMouse() { |
- // TODO(yzshen): Only allow to lock the mouse when in fullscreen mode, and |
- // make sure that the mouse is unlocked when leaving fullscreen mode. |
- if (!view_ || !view_->HasFocus() || !view_->LockMouse()) { |
+ if (!HasMouseLockPermission() || !view_ || !view_->HasFocus()|| |
+ !view_->LockMouse()) { |
Send(new ViewMsg_LockMouse_ACK(routing_id_, false)); |
} else { |
Send(new ViewMsg_LockMouse_ACK(routing_id_, true)); |
@@ -1161,8 +1167,7 @@ void RenderWidgetHost::OnMsgLockMouse() { |
} |
void RenderWidgetHost::OnMsgUnlockMouse() { |
- if (IsMouseLocked()) |
- view_->UnlockMouse(); |
+ UnlockMouseIfNecessary(); |
} |
#if defined(OS_POSIX) |