Chromium Code Reviews| Index: content/renderer/render_view_impl.h |
| diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h |
| index cb8ac8f2d42edca58a9ecd516baf86c5d7c93489..65d43c1c5ed4419082ec2add21673707d9bee8d8 100644 |
| --- a/content/renderer/render_view_impl.h |
| +++ b/content/renderer/render_view_impl.h |
| @@ -307,6 +307,9 @@ class RenderViewImpl : public RenderWidget, |
| virtual void runModal(); |
| virtual bool enterFullScreen(); |
| virtual void exitFullScreen(); |
| + virtual void lockPointer(); |
| + virtual void unlockPointer(); |
| + virtual bool isPointerLocked(); |
| // WebKit::WebViewClient implementation -------------------------------------- |
| @@ -797,9 +800,9 @@ class RenderViewImpl : public RenderWidget, |
| const std::vector<GURL>& links, |
| const std::vector<FilePath>& local_paths, |
| const FilePath& local_directory_name); |
| - void OnLockMouseACK(bool succeeded); |
| void OnMediaPlayerActionAt(const gfx::Point& location, |
| const WebKit::WebMediaPlayerAction& action); |
| + void OnLockMouseACK(bool succeeded); |
| void OnMouseLockLost(); |
| void OnMoveOrResizeStarted(); |
| CONTENT_EXPORT void OnNavigate(const ViewMsg_Navigate_Params& params); |
| @@ -1232,6 +1235,37 @@ class RenderViewImpl : public RenderWidget, |
| // notifications. |
| // --------------------------------------------------------------------------- |
| + // TEMP -- REFACTOR TO A DISPATCHER |
|
yzshen1
2012/01/04 00:50:00
We probably cannot check in the code without a nic
|
| +public: |
| + bool lockPointer(WebKit::WebWidget* webwidget) { return LockMouseInternal(webwidget, NULL); } |
| + bool LockMouse(webkit::ppapi::PluginInstance* pinstance) { return LockMouseInternal(NULL, pinstance); } |
| + void unlockPointer(WebKit::WebWidget* webwidget) { UnlockMouseInternal(webwidget, NULL); } |
| + void UnlockMouse(webkit::ppapi::PluginInstance* pinstance) { UnlockMouseInternal(NULL, pinstance); } |
| +private: |
| + bool LockMouseInternal(WebKit::WebWidget* webwidget, webkit::ppapi::PluginInstance* pinstance); |
| + void UnlockMouseInternal(WebKit::WebWidget* webwidget, webkit::ppapi::PluginInstance* pinstance); |
| + bool MouseLockedOrPendingAction() const { |
| + return mouse_locked_ || pending_lock_request_ || pending_unlock_request_; |
| + } |
| + |
| + bool mouse_locked_; |
| + // If both |pending_lock_request_| and |pending_unlock_request_| are true, |
| + // it means a lock request was sent before an unlock request and we haven't |
| + // received responses for them. |
| + // The logic in LockMouse() makes sure that a lock request won't be sent when |
| + // there is a pending unlock request. |
| + bool pending_lock_request_; |
| + bool pending_unlock_request_; |
| + |
| + // |mouse_lock_owner_| is not owned by this class. |
| +//???????? need to deal with it being deleted? |
|
yzshen1
2012/01/04 00:50:00
As far as PPAPI is concerned, we will get a notifi
|
| + // |mouse_lock_owner_| being non-NULL doesn't indicate that currently the |
| + // mouse has been locked. It is possible that a request to lock the mouse has |
| + // been sent, but the response hasn't arrived yet. |
| + WebKit::WebWidget* mouse_lock_webwidget_owner_; |
| + webkit::ppapi::PluginInstance* mouse_lock_pinstance_owner_; |
| + // TEMP -- REFACTOR TO A DISPATCHER |
| + |
| DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); |
| }; |