| Index: content/renderer/render_widget_fullscreen_pepper.cc
|
| diff --git a/content/renderer/render_widget_fullscreen_pepper.cc b/content/renderer/render_widget_fullscreen_pepper.cc
|
| index 27293e124b4ab0835808142e2a7f896581efeef1..b96becc1b8360573e8661a3625d9b3acdfee46c6 100644
|
| --- a/content/renderer/render_widget_fullscreen_pepper.cc
|
| +++ b/content/renderer/render_widget_fullscreen_pepper.cc
|
| @@ -36,6 +36,36 @@ using WebKit::WGC3Dintptr;
|
|
|
| namespace {
|
|
|
| +class FullscreenMouseLockDispatcher : public MouseLockDispatcher {
|
| + public:
|
| + explicit FullscreenMouseLockDispatcher(RenderWidgetFullscreenPepper* widget);
|
| + virtual ~FullscreenMouseLockDispatcher();
|
| +
|
| + private:
|
| + // MouseLockDispatcher implementation.
|
| + virtual void SendLockMouseRequest() OVERRIDE;
|
| + virtual void SendUnlockMouseRequest() OVERRIDE;
|
| +
|
| + RenderWidgetFullscreenPepper* widget_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FullscreenMouseLockDispatcher);
|
| +};
|
| +
|
| +FullscreenMouseLockDispatcher::FullscreenMouseLockDispatcher(
|
| + RenderWidgetFullscreenPepper* widget) : widget_(widget) {
|
| +}
|
| +
|
| +FullscreenMouseLockDispatcher::~FullscreenMouseLockDispatcher() {
|
| +}
|
| +
|
| +void FullscreenMouseLockDispatcher::SendLockMouseRequest() {
|
| + widget_->Send(new ViewHostMsg_LockMouse(widget_->routing_id(), false, true));
|
| +}
|
| +
|
| +void FullscreenMouseLockDispatcher::SendUnlockMouseRequest() {
|
| + widget_->Send(new ViewHostMsg_UnlockMouse(widget_->routing_id()));
|
| +}
|
| +
|
| // WebWidget that simply wraps the pepper plugin.
|
| class PepperWidget : public WebWidget {
|
| public:
|
| @@ -240,7 +270,9 @@ RenderWidgetFullscreenPepper::RenderWidgetFullscreenPepper(
|
| context_(NULL),
|
| buffer_(0),
|
| program_(0),
|
| - weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
|
| + weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
|
| + mouse_lock_dispatcher_(new FullscreenMouseLockDispatcher(
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(this))) {
|
| }
|
|
|
| RenderWidgetFullscreenPepper::~RenderWidgetFullscreenPepper() {
|
| @@ -316,6 +348,27 @@ RenderWidgetFullscreenPepper::CreateContext3D() {
|
| #endif
|
| }
|
|
|
| +MouseLockDispatcher* RenderWidgetFullscreenPepper::GetMouseLockDispatcher() {
|
| + return mouse_lock_dispatcher_.get();
|
| +}
|
| +
|
| +bool RenderWidgetFullscreenPepper::OnMessageReceived(const IPC::Message& msg) {
|
| + bool handled = true;
|
| + IPC_BEGIN_MESSAGE_MAP(RenderWidgetFullscreenPepper, msg)
|
| + IPC_MESSAGE_FORWARD(ViewMsg_LockMouse_ACK,
|
| + mouse_lock_dispatcher_.get(),
|
| + MouseLockDispatcher::OnLockMouseACK)
|
| + IPC_MESSAGE_FORWARD(ViewMsg_MouseLockLost,
|
| + mouse_lock_dispatcher_.get(),
|
| + MouseLockDispatcher::OnMouseLockLost)
|
| + IPC_MESSAGE_UNHANDLED(handled = false)
|
| + IPC_END_MESSAGE_MAP()
|
| + if (handled)
|
| + return true;
|
| +
|
| + return RenderWidgetFullscreen::OnMessageReceived(msg);
|
| +}
|
| +
|
| void RenderWidgetFullscreenPepper::WillInitiatePaint() {
|
| if (plugin_)
|
| plugin_->ViewWillInitiatePaint();
|
|
|