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.

This interface provides a way of locking the target of mouse events to a single module instance and removing the cursor from view. This mode is useful for certain classes of applications, especially first-person perspective 3D applications and 3D modeling 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)

LockMouse() requests the mouse to be locked.

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 event. The GetPosition() function in the PPB_MouseInputEvent interface reports the last known mouse position just as mouse lock was entered. The GetMovement() function provides relative movement information indicating what the change in position of the mouse would be had it not been locked.

The browser may revoke the mouse lock for reasons including (but not limited to) the user pressing the ESC key, the user activating another program using 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.

UnlockMouse() causes the mouse to be unlocked, allowing it to track user movement again.

This is an asynchronous operation. The module instance will be notified using 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.