From 2abccc497efd38b72809fb9a6c88ab5ae6842966 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 14 Aug 2013 16:45:18 +0200 Subject: [PATCH] Allow removing current and queued listeners. --- .../src/com/esotericsoftware/spine/AnimationState.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index fabafc98a..72bb450b9 100644 --- a/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -226,8 +226,14 @@ public class AnimationState { listeners.add(listener); } + /** Removes the listener, which may be for all animations, the current animation, or a queued animation. */ public void removeListener (AnimationStateListener listener) { listeners.removeValue(listener, true); + + if (listener == currentListener) currentListener = null; + + for (int i = queue.size - 1; i >= 0; i--) + if (queue.get(i).listener == listener) queue.removeIndex(i); } public AnimationStateData getData () {