Cogl-1.16 has much deprecation that is done, which causes the build of
Clutter to generate lots of C4996 (deprecation) warnings. As in commit
fa8809d7 (Add COGL_DISABLE_DEPRECATION_WARNINGS to the build flags), do
likewise by adding this macro in the Visual C++ property sheets, so we
would have much less C4996 warnings during the build.
Please see bug 703877 for the rationale behind this.
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
We can't dispatch a motion event for EV_REL (because we don't
have yet the other half of the event), but we can't also queue
them at the end of processing (because we may lose some history
or have button/keys intermixed).
Instead, we use EV_SYN, which means "one logical event was
completed", and let the winsys-independent code do the actual
motion compression.
https://bugzilla.gnome.org/show_bug.cgi?id=706494
When we release a device, we lose all the events after that point,
so our state can become stale. Similarly, we need to sync the
state with the effectively pressed keys when we reclaim.
This ensures that modifier keys don't get stuck when switching
VTs using a keybinding.
https://bugzilla.gnome.org/show_bug.cgi?id=706494
When talking to other applications or serializing the modifier
state (and in particular when implementing a wayland compositor),
the effective modifier state alone is not sufficient, one needs
to know the base, latched and locked modifiers.
Previously one could do with backend specific functionality
such as clutter_device_manager_evdev_get_xkb_state(), but the
problem is that the internal data structures are updated as
soon as the events are fetched from the upstream source, but
the events are reported to the application some time later,
and thus the two can get out of sync.
This way, on the other hand, the information is cached in the
event, and provided to the application with the value that
was current when the event was generated.
https://bugzilla.gnome.org/show_bug.cgi?id=706494
These two devices are logically tied togheter, and their state
should always be the same. Also, we need to update them after
the event is queued, as the current modifier state (as opposed to the
modifier mask in the event) should include also the effect of the last
key press/release.
https://bugzilla.gnome.org/show_bug.cgi?id=706494
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
-Combine entries in the property sheets and make it a bit more flexible,
and drop some redundant items
-Use Custom Build Rules for generating enumeration and marshalling sources,
and the .def file so that they can be wiped off when a "clean" is
requested, and regenerate automatically when the templates/.symbols
files are updated.
-Improve consistency by using ApiVersion rather than ClutterApiVersion
with the Visual Studio project for other components of the Clutter/GTK+
stack
-Get rid of unneeded configs in the "install" project
-Combine entries in the property sheets and make it a bit more flexible,
and drop some redundant items
-Use Custom Build Rules for generating enumeration and marshalling sources,
and the .def file so that they can be wiped off when a "clean" is
requested, and regenerate automatically when the templates/.symbols
files are updated.
-Improve consistency by using ApiVersion rather than ClutterApiVersion
with the Visual Studio project for other components of the Clutter/GTK+
stack
-Get rid of unneeded configs in the "install" project
This is taken directly from the 1.16 series, as it seems that the 1.x
development starts from here, so put this here first and make the
neccessary adjustments as we go on.
This reverts commit b6fc4a810f.
It seems that the Cogl/Cogl-Path split was not meant to break API/ABI,
so we should not check for a new dependency. Let's revert the commit,
and wait for Cogl to get fixed instead.
If we don't get passed a CoglFramebuffer when creating the root paint
node then we ask Cogl to give us the current draw buffer.
This allows the text-cache conformance test to pass, but it'll require
further investigation.
Currently the default values according to their param spec don't
match the actually used defaults, so update the former to reflect
the actual behavior.
https://bugzilla.gnome.org/show_bug.cgi?id=703809
Whether a child should receive extra space should be determined
by the expand property, not [xy]_fill (which just determine how
additional space should be used). The behavior is already correct
when using the ClutterActor:[xy]_expand properties, but needs
fixing for the corresponding ClutterBoxLayoutChild property.
https://bugzilla.gnome.org/show_bug.cgi?id=703809