Clean up grab implementation
authorEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 10 Oct 2011 15:45:20 +0000 (16:45 +0100)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Tue, 11 Oct 2011 16:15:34 +0000 (17:15 +0100)
commitb6dd306998e626cbc86051dc1237894d515aa3dd
treef3f983828e46fb99838256dafa6bda8453b6308e
parent33846dcf4df7443964150d6afe64a165adecc5e6
Clean up grab implementation

The grab API is a relic of Clutter 0.6, and hasn't been through proper
vetting in a *long* time — mostly due to the fact that we don't really
like grabs, and point to the ::captured-event as a way to implement
"soft grabs" in toolkits and applications.

The implementation of full and device grabs uses weak references on
actors instead of using the ::destroy signal, which is meant exactly for
the case of releasing pointers to actors when they are disposed.

The API naming scheme is also fairly broken, especially for
device-related grabs.

Finally, keyboard device grabs are just not implemented.

We can, in one go, clean up this mess and deprecate a bunch of badly
named API by introducing generic device grab/ungrab methods on
ClutterInputDevice, and re-implement the current API on top of them.
clutter/clutter-device-manager-private.h
clutter/clutter-input-device.h
clutter/clutter-main.c
clutter/clutter-main.h