[ui] IJPL-182690: Allow manually run animations

GitOrigin-RevId: 24bad228810ebeabfa03dbe905e6b1d86d8593ec
This commit is contained in:
Konstantin Nisht
2025-05-15 09:59:45 +00:00
committed by intellij-monorepo-bot
parent 9bf3222992
commit 009d4c4ded
2 changed files with 15 additions and 0 deletions
@@ -5,6 +5,7 @@ import com.intellij.openapi.Disposable;
import com.intellij.util.ui.update.Activatable;
import com.intellij.util.ui.update.UiNotifyConnector;
import kotlinx.coroutines.CoroutineScope;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
@@ -95,6 +96,11 @@ public class AnimatedIcon extends JComponent implements Disposable {
isPaintPassive = paintPassive;
}
@ApiStatus.Internal
public void tickAnimation() {
animator.forceTick();
}
private boolean ensureAnimation(boolean running) {
var isShowing = isShowing();
var animatorShouldBeRunning = running && isShowing;
@@ -12,6 +12,7 @@ import com.intellij.openapi.util.Disposer
import com.intellij.util.ReflectionUtil
import com.intellij.util.SingleAlarm
import kotlinx.coroutines.*
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.annotations.ApiStatus.Obsolete
import org.jetbrains.annotations.NonNls
import java.awt.GraphicsEnvironment
@@ -58,6 +59,14 @@ abstract class Animator @JvmOverloads constructor(
}
}
/**
* This operation is used for manual processing of animation in cases when IDE event queue is unavailable
*/
@ApiStatus.Internal
fun forceTick() {
onTick()
}
private fun onTick() {
if (isDisposed) {
return