From a5f032a1e198b444081976e7a0791a673650ed15 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Thu, 30 Jul 2009 13:31:06 +0400 Subject: [PATCH] animation icon fix --- .../src/com/intellij/util/ui/AnimatedIcon.java | 38 ++++++++++------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/platform-api/src/com/intellij/util/ui/AnimatedIcon.java b/platform-api/src/com/intellij/util/ui/AnimatedIcon.java index a1af11134b..eb7b2492f9 100644 --- a/platform-api/src/com/intellij/util/ui/AnimatedIcon.java +++ b/platform-api/src/com/intellij/util/ui/AnimatedIcon.java @@ -93,38 +93,36 @@ public abstract class AnimatedIcon extends JComponent implements Disposable { } - public void resume() { - myRunning = true; - setOpaque(true); - myAnimator.resume(); + private void ensureAnimation(boolean running) { + if (running) { + setOpaque(true); + myAnimator.resume(); + } else { + setOpaque(myPaintPassive); + myAnimator.suspend(); + } } public void addNotify() { super.addNotify(); - resume(); + if (myRunning) { + ensureAnimation(true); + } } public void removeNotify() { super.removeNotify(); - _suspend(); + ensureAnimation(false); } - public void suspend() { - if (_suspend()) { - repaint(); - } + public void resume() { + myRunning = true; + ensureAnimation(true); } - private boolean _suspend() { - setOpaque(myPaintPassive); - - if (myRunning || myAnimator.isRunning()) { - myAnimator.suspend(); - myRunning = false; - return true; - } else { - return false; - } + public void suspend() { + myRunning = false; + ensureAnimation(false); } public void dispose() { -- 2.11.4.GIT