Commit Graph

7554 Commits

Author SHA1 Message Date
bc8b3d9f39 evdev: Implement ClutterInputDeviceTool
This will be backed by a libinput_tool, the type and serial are
fetched from there.
2016-05-03 13:05:06 +02:00
b63e73e422 events: Add proximity events
These events will be sent on tool proximity of tablet events.
2016-05-03 13:05:06 +02:00
3602b49a30 event: Add ClutterInputDeviceTool information to clutter events
These can be used to determine the tool that's being in use for a given event
2016-05-03 13:05:06 +02:00
8b2c888368 input-device: Add ClutterInputDeviceTool
This is an unique opaque struct that identifies a given tool of
a given device.
2016-05-03 13:05:06 +02:00
ec708fc1a9 enums: Add rotation/slider axes
These will be useful for the tablet tools that have these features.
2016-05-03 13:05:06 +02:00
6e773389fd evdev: Map LIBINPUT_DEVICE_CAP_TABLET to CLUTTER_TABLET_DEVICE
This is so tablet devices have the correct ClutterInputDeviceType
2016-05-03 13:05:06 +02:00
fe59da43ef evdev: Pass axis parameters when notifying absolute motion events
This will be useful for tablet support, NULL is given in the current
callers.
2016-05-03 13:05:06 +02:00
40a5eff5d4 input-device: Disconnect signals on actors where the device has a cursor
Otherwise the signals are left dangling if the device is removed, causing
possible invalid memory accesses afterwards.
2016-05-03 13:05:06 +02:00
9d32146edb evdev: Use device name rather than sysname
The device name is something more natural, similar to what's seen
in X11, the sysname is rather the event node basename, which may
also vary depending on device insertion/detection time.
2016-05-03 13:05:06 +02:00
3856622ff7 clutter: Add back support for non-wayland builds
Wayland support is only available on Linux, so keep it optional for
now.

https://bugzilla.gnome.org/show_bug.cgi?id=760439
2016-04-29 16:13:59 +02:00
28c9b6e1d7 build: Namespace installed tests of private libraries
Currently our private cogl/clutter forks still install tests as
cogl/clutter, which conflicts with the original libraries.
2016-04-29 14:49:03 +02:00
29752b6b63 cogl/clutter: Drop soname versions of private libraries 2016-04-28 15:34:51 +02:00
6e5888853e build: Export correct pkg-config names in .girs 2016-04-28 15:22:50 +02:00
0f78357a5f Include libdrm and gbm when building Clutter
Clutter out of tree depends on Cogl's required dependencies via the
pkg-config file. Since Clutter and Cogl moved in tree, it means that
those dependencies need to be checked by Clutter itself, otherwise
headers and libraries won't be found.
2016-04-28 12:41:34 +01:00
ba786d4fae clutter/tests/conform: Link against libmutter-cogl as needed 2016-04-28 11:59:05 +02:00
1fa540bcb7 Fix the merged build
https://bugzilla.gnome.org/show_bug.cgi?id=760439
2016-04-27 20:37:47 +02:00
9710e4a8c0 move everything into a clutter/ directory 2016-04-12 20:04:26 +02:00
a4fb7ef5a3 po: drop translations 2016-04-12 20:03:30 +02:00
eb959c73ab build: move glib marshaller/enum generation to src dir
the build/ dir is getting gutted so this commit moves
the two still needed bits to the source dir.
2016-04-12 19:57:35 +02:00
7bd9bc2913 build: get rid of specialized makefile snippets
mutter won't have them, and we don't need them
2016-04-12 19:57:35 +02:00
ed0051d0b4 clutter: make library private to mutter 2016-04-12 19:57:35 +02:00
8675400191 configure: hardcode backends 2016-04-12 19:57:35 +02:00
b1c59579ff clutter-glx: drop old clutter-glx stuff 2016-04-12 19:57:35 +02:00
2cdd4b8250 tslib: drop tslib support 2016-04-12 19:57:35 +02:00
89daa8d4fa wayland: drop wayland backend 2016-04-12 19:57:35 +02:00
04c84b049f gdk: drop gdk backend 2016-04-12 19:57:35 +02:00
0777de1757 osx: drop osx support 2016-04-12 19:57:35 +02:00
6d0829b0d2 cex100: drop GDL support 2016-04-12 19:57:35 +02:00
8f205d76e1 mir: drop mir backend 2016-04-12 19:57:35 +02:00
c7472841b1 win32: drop win32 support 2016-04-12 19:57:35 +02:00
c6e40de500 actor: Warn on adding/removing itself as a child
ClutterActor should warn if a user tries to add or remove an actor to,
and from, itself on the scene graph.

Clutter will likely crash, or warn way down the line, but if we can make
debugging simpler then we should.
2016-03-29 15:09:26 +01:00
e62a6376a5 gdk: Disable deprecation warnings
For the GDK backend We're using the GdkDeviceManager API, which maps to
Clutter's own device manager API. GDK has now moved to a per-seat device
management model, and deprecated the device manager singleton one.

In order to avoid the deprecation warnings, we'd have to implement a
model similar to the GDK one inside the generic Clutter API, but that
would also require moving all the others backend to it, which is pretty
pointless.

Instead, we can disable deprecation warnings for the
ClutterDeviceManager implementation inside the GDK backend.
2016-02-28 12:43:43 +00:00
a99dd7555b clutter/config.h.win32.in: Keep in sync with autotools builds
This updates config.h.win32.in to be in-sync with the entries that are in
the config.h.in that is generated by the autotools builds.  In particular,
for Visual Studio builds, we default to enable all available drivers ("*").
2016-02-27 20:48:51 +08:00
2b0ff2f2ba cally: Avoid clone spamming state changes
Clones may generate a temporary map/unmap on their source when painting;
this, in turn, will generate unnecessary ATK state changes.

https://bugzilla.gnome.org/show_bug.cgi?id=756371
2016-02-24 12:03:37 +00:00
c867e9d941 actor: Expand is_in_clone_paint() check
The function should return true not only if the actor is being painted
by a ClutterClone, but also if it's inside a sub-graph being painted by
a ClutterClone.

https://bugzilla.gnome.org/show_bug.cgi?id=756371
2016-02-24 12:03:37 +00:00
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
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
9214d5029c evdev: Use microsecond granularity for internal timestamps
It's what libinput uses internally, and it'll be exposed in a later
patch.

https://bugzilla.gnome.org/show_bug.cgi?id=752752
2016-02-16 18:24:23 +08:00
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
a10200509e evdev: Recycle device ids after devices are removed
In order to not grow the device id number forever, recycle the ids
whenever a device is released.

https://bugzilla.gnome.org/show_bug.cgi?id=755849
2016-02-16 18:24:23 +08:00
c624230a8a gdk: Enable swap throttling on full screen windows
Since commit 6183eb3632 we disabled swap
throttling in favour of being driven by the GDK frame clock (and thus by
the compositor).

Compositors may decide to unredirect full screen windows to avoid the
performance penalty of the additional copy, especially on X11, which
means that a Clutter application marked as full screen is not going to
be driven by the compositor, and it's not going to be throttled by the
underlying GL machinery. This has a performance impact on constrained
platforms.

For this reason, we should re-enable swap throttling when the window is
full screen.

As the change was introduced especially because of Wayland, we should
check that we're not running as clients under a Wayland compositor; if
we do, we always keep swap throttling disabled, as the compositor will
always manage our output, even when full screen.
2016-01-25 18:48:49 +00:00
307cb58598 evdev: Add scroll source/finish flags info to scroll events.
Libinput tells us this much, so make use of it.

https://bugzilla.gnome.org/show_bug.cgi?id=757026
2016-01-14 19:12:17 +01:00
89c1c1e551 clutter-event: Add scroll source enum and axis scroll flags
Those can be used to implement different scrolling behaviors.
The fields have been added to ClutterScrollEvent itself. According
to pahole, this makes the struct as big as ClutterButtonEvent and
ClutterTouchEvent, so already at the limit of the ClutterEvent
union.

https://bugzilla.gnome.org/show_bug.cgi?id=757026
2016-01-14 19:12:17 +01:00
a774ff5a09 egl: Rename backend constructor function
Otherwise the build will fail.
2015-12-11 16:23:09 +00:00
e9b5eb3045 Allow setting the default backend from the configuration file
We should allow a configuration file to set up the initial state of the
global state, which also implies being able to set the backend.

If the allowed backends have already been set programmatically via the
clutter_set_windowing_backend(), though, then the application code takes
precedence, as we assume that the application author knows better than
us what their code supports or requires.
2015-12-11 15:53:24 +00:00
cc31ed77bd Read the config file when creating the global shared state
The configuration file should set up the global state before we
initialize it; instead of relying on implicit ordering, explicitly read
the configuration file once, when creating the global shared context
data structure.
2015-12-11 15:53:24 +00:00
6d0d1deda2 backend: Ensure that Cogl drivers are set prior to initialization
It doesn't make sense for the allowed drivers to be changed after
Clutter has been initialized.
2015-12-11 15:53:24 +00:00
10b74e7005 backend: Allow setting a list of windowing backends
Like CLUTTER_DRIVER, we want to allow users to specify a list of
backends to test, and fall back to the internally defined priority as a
default.

This requires changing the way the allowed backend string is parsed,
both for the CLUTTER_BACKEND environment variable and for the
clutter_set_windowing_backend() function. Existing callers are still
supported with the exact same semantics.
2015-12-11 15:53:23 +00:00
7ca28e0974 Add internal constructor function for each backend
We're going to use it to create an instance of each backend without
using the get_type() function.
2015-12-11 14:23:38 +00:00
407d7ca436 Allow overriding the list of Cogl drivers via configuration file
Clutter has a configuration file that can be used to override
various settings, including the ones from environment variables.
2015-12-10 16:52:45 +00:00