Skip to content

Commit f354e6f

Browse files
committed
environment: Add an onUpdate parameter for easing.
1 parent 232df05 commit f354e6f

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

js/ui/environment.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ function _makeEaseCallback(params, cleanup) {
6868
};
6969
}
7070

71+
function _makeFrameCallback(params) {
72+
let onUpdate = params.onUpdate;
73+
delete params.onUpdate;
74+
75+
return (transition, timeIndex) => {
76+
if (onUpdate)
77+
onUpdate(transition, timeIndex);
78+
};
79+
}
80+
7181
function _getPropertyTarget(actor, propName) {
7282
if (!propName.startsWith('@'))
7383
return [actor, propName];
@@ -119,6 +129,7 @@ function _easeActor(actor, params) {
119129

120130
let cleanup = () => Meta.enable_unredirect_for_display(global.display);
121131
let callback = _makeEaseCallback(params, cleanup);
132+
let updateCallback = _makeFrameCallback(params);
122133

123134
// cancel overwritten transitions
124135
let animatedProps = Object.keys(params).map(p => p.replace('_', '-', 'g'));
@@ -139,6 +150,7 @@ function _easeActor(actor, params) {
139150
if (transition) {
140151
transition.set({ repeatCount, autoReverse });
141152
transition.connect('stopped', (t, finished) => callback(finished));
153+
transition.connect('new-frame', (t, timeIndex) => updateCallback(t, timeIndex));
142154
} else {
143155
callback(true);
144156
}

0 commit comments

Comments
 (0)