environment: Apply autoReverse/repeatCount to all transitions

Like the old Tweener API, ease() allows to transition multiple
properties at once. If autoReverse or repeatCount are specified,
they should apply to all transitions, but right now we only set
them for the first one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2007>
This commit is contained in:
Florian Müllner 2021-10-21 19:50:18 +02:00
parent e7a90d98ae
commit cc5cc0d653

View File

@ -201,21 +201,24 @@ function _easeActor(actor, params) {
actor.set(params);
actor.restore_easing_state();
let transition = animatedProps.map(p => actor.get_transition(p))
.find(t => t !== null);
const transitions = animatedProps
.map(p => actor.get_transition(p))
.filter(t => t !== null);
transitions.forEach(t => t.set({ repeatCount, autoReverse }));
const [transition] = transitions;
if (transition && transition.delay)
transition.connect('started', () => prepare());
else
prepare();
if (transition) {
transition.set({ repeatCount, autoReverse });
if (transition)
transition.connect('stopped', (t, finished) => callback(finished));
} else {
else
callback(true);
}
}
function _easeActorProperty(actor, propName, target, params) {
// Avoid pointless difference with ease()