Commit Graph

20 Commits

Author SHA1 Message Date
Jonas Ådahl
8181ef15d6 evdev: Pass a motion delta to pointer constrain callback
The constrain callback cannot rely on the pointer position of the
corresponding ClutterInputDevice to get the actual delta of the motion
event that is to be constrained since it is only updated when an event is
dispatched. So change the API to pass the previous pointer position when
constraining.

https://bugzilla.gnome.org/show_bug.cgi?id=752752
2016-02-16 18:53:58 +08:00
Jonas Ådahl
52e38d1ab7 evdev: Expose microsecond timestamps via the clutter evdev API
This is needed by Wayland compositors for certain types of events.

https://bugzilla.gnome.org/show_bug.cgi?id=752752
2016-02-16 18:24:23 +08:00
Jonas Ådahl
a598917e07 evdev: Provide the relative pointer motion event deltas
Compositors need more detailed information about motion events. Make it
possible to retrieve this information when running the evdev backend by
adding the information to the backend specific event struct.

https://bugzilla.gnome.org/show_bug.cgi?id=752752
2016-02-16 18:24:23 +08:00
Carlos Garnacho
f1ad702309 evdev: Allow to retrieve the input.h event code from ClutterEvents
This is now stored as platform data in the ClutterEvent, so can
be retrieved with the clutter_evdev_event_get_event_code() call
that's been added to the evdev backend.

https://bugzilla.gnome.org/show_bug.cgi?id=758238
2015-11-18 13:00:48 +01:00
Emmanuele Bassi
6b70343d09 docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
Rui Matos
f95493e7bf evdev: Add API to set the xkb layout index
https://bugzilla.gnome.org/show_bug.cgi?id=733202
2014-08-07 11:43:00 +01:00
Jasper St. Pierre
4cdcbcb2b1 evdev: Add clutter_evdev_warp_pointer
https://bugzilla.gnome.org/show_bug.cgi?id=731536
2014-06-11 17:21:15 -04:00
Carlos Garnacho
9510d6ac95 evdev: Add clutter_evdev_event_sequence_get_slot()
This function helps know the libinput slot used by a sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=728968
2014-05-21 14:09:33 +02:00
Carlos Garnacho
8857b19d49 evdev: Add function to get the libinput_device from a ClutterInputDevice
This may be useful for deeper libinput integration that's not in the scope
of Clutter.

https://bugzilla.gnome.org/show_bug.cgi?id=728967
2014-05-21 14:09:22 +02:00
Carlos Garnacho
91ee1ceca4 evdev: Add evdev specific event filter function
This function can be used to intercept or translate events
that are unmanaged by clutter itself.

https://bugzilla.gnome.org/show_bug.cgi?id=728967
2014-05-21 14:09:22 +02:00
Jasper St. Pierre
e23f77f1e6 evdev: Extend the device open callback with a close callback as well
We need to return the device to logind with ReleaseDevice().

https://bugzilla.gnome.org/show_bug.cgi?id=726199
2014-03-13 12:46:27 -04:00
Rui Matos
64508e48b6 evdev: Add missing CLUTTER_AVAILABLE_IN_* annotations 2014-02-27 11:31:34 +01:00
Rui Matos
d67b38f960 evdev: Make the keymap available
Make the keymap available so that consumers don't have to duplicate it
if they need it.

https://bugzilla.gnome.org/show_bug.cgi?id=725102
2014-02-27 11:31:33 +01:00
Rui Matos
a6bd53ec42 evdev: Implement keyboard repeat
The kernel keyboard repeat functionality isn't configurable and
libinput rightfully ignores it.

This implements keyboard repeat in userspace allowing for consumers to
set the initial delay and repeat intervals.

https://bugzilla.gnome.org/show_bug.cgi?id=725102
2014-02-27 10:59:15 +01:00
Rui Matos
133f95fd0d evdev: Add a conditional define guard to expose API
The evdev backend has always been excluded from Clutter's API
stability guarantee though in an informal way. This commit makes it
explicit by forcing users to define CLUTTER_ENABLE_COMPOSITOR_API.

https://bugzilla.gnome.org/show_bug.cgi?id=725102
2014-02-27 10:59:15 +01:00
Giovanni Campagna
d4ddabeaad evdev: remove keyboard state accessor
It was a bad idea to add it, because clutter events are batched,
so by the time the application processes one, the keyboard state
internally tracked by clutter could be already different.
Instead, apps should use clutter_event_get_state_full()

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 18:02:04 +02:00
Giovanni Campagna
aef3d0022c evdev: add callback to constrain the pointer position
Add a new callback that is called prior to emitting pointer
motion events and that can modify the new pointer position.
The main purpose is allowing multiscreen apps to prevent the
pointer for entering the dead area that exists when the screens
are not the same size, but it could also used to implement
pointer barriers.
A callback is needed to make sure that the hook is called early
enough and the Clutter state is always consistent.

https://bugzilla.gnome.org/show_bug.cgi?id=706652
2013-09-09 12:00:52 +02:00
Giovanni Campagna
8c358f18b1 evdev: allow hooking directly into libxkbcommon
A wayland compositor needs to have more keyboard state than
ClutterModifierState exposes, so it makes sense for it to use
xkb_state directly. Also, it makes sense for it to provide
it's own keymap, to ensure a consistent view between the compositor
and the wayland clients.

https://bugzilla.gnome.org/show_bug.cgi?id=705710
2013-08-13 17:51:33 +02:00
Giovanni Campagna
26b2852601 evdev: add a way for applications to tweak how devices are opened
In some cases, applications (or actually, wayland compositors)
don't have the required permissions to access evdev directly, but
can do so with an external helper like weston-launch.

Allow them to do so with a custom callback that replaces the regular
open() path.

https://bugzilla.gnome.org/show_bug.cgi?id=704269
2013-08-13 09:41:44 +02:00
Robert Bragg
3c6a0cdc61 evdev: Adds api to release/reclaim the evdev devices
Clutter applications using evdev are typically fullscreen applications
associated with a single virtual termainal. When switching away from
the applications associated tty then Clutter should stop managing all
evdev devices and re-probe for devices when the application regains
focus by switching back to the tty. To facilitate this, this patch
adds clutter_evdev_release_devices() and clutter_evdev_reclaim_devices()
functions.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2012-03-01 11:41:51 +00:00