Native Client

PPB_MouseLock Struct Reference

The PPB_MouseLock interface is implemented by the browser. More...


Detailed Description

The PPB_MouseLock interface is implemented by the browser.

It provides a way of locking the target of mouse events to a single plugin instance and removing the cursor from view. This is a useful input mode for certain classes of applications, especially first person perspective 3D applications and 3D modelling software.

Data Fields List

int32_t(* LockMouse )(PP_Instance instance, struct PP_CompletionCallback callback)
void(* UnlockMouse )(PP_Instance instance)

Data Fields Details

int32_t(* PPB_MouseLock::LockMouse)(PP_Instance instance, struct PP_CompletionCallback callback)

Requests the mouse to be locked.

The browser will permit mouse lock only while the tab is in fullscreen mode.

While the mouse is locked, the cursor is implicitly hidden from the user. Any movement of the mouse will generate a PP_INPUTEVENT_TYPE_MOUSEMOVE. The GetPosition of PPB_MouseInputEvent reports the last known mouse position just as mouse lock was entered; while the GetMovement provides relative movement information, which indicates what the change in position of the mouse would be had it not been locked.

The browser may revoke mouse lock for reasons including but not limited to the user pressing the ESC key, the user activating another program via a reserved keystroke (e.g., ALT+TAB), or some other system event.

Parameters:
[in]instanceA PP_Instance identifying one instance of a module.
[in]callbackA PP_CompletionCallback to be called upon completion.
Returns:
An int32_t containing an error code from pp_errors.h.

Causes the mouse to be unlocked, allowing it to track user movement again.

This is an asynchronous operation. The plugin instance will be notified via the PPP_MouseLock interface when it has lost the mouse lock.

Parameters:
[in]instanceA PP_Instance identifying one instance of a module.

The documentation for this struct was generated from the following file:

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.