[PATCH 4/5] compositor: Implement pointer_lock

Pekka Paalanen ppaalanen at gmail.com
Tue Feb 26 04:58:37 PST 2013

On Mon, 25 Feb 2013 21:33:24 -0500
Kristian Høgsberg <krh at bitplanet.net> wrote:

> The pointer lock extension lets a client lock pointer motion and receive
> relative pointer motion events.  This patch implements the weston side
> of the extension.
> ---
>  src/compositor.c | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  src/compositor.h |   7 +++
>  2 files changed, 189 insertions(+), 2 deletions(-)

Ah, forgot some things that came up while testing.

- it seems that you forgot to apply the surface transformation to the
  relative events in weston, perhaps this would be a use for
  weston_matrix_transform(..., {dx, dy, 0, 0}), assuming we are always
  dealing with linear transformations?

- having pointer lock active will prevent all compositor pointer

- having pointer lock active while the client becomes unresponsive can
  eventually lead to weston segfaulting. First it however seems to keep
  the pointer hostage (didn't get to try alt+tab or anything before
  weston crashed while killing the client).

I made the client unresponsive with 'sleep 5 && kill -STOP <pid>'.


More information about the wayland-devel mailing list