diff --git a/platform/platform-api/src/com/intellij/util/ui/AnimatedIcon.java b/platform/platform-api/src/com/intellij/util/ui/AnimatedIcon.java index 2fc52f4b9746..8df8a01ff2a9 100644 --- a/platform/platform-api/src/com/intellij/util/ui/AnimatedIcon.java +++ b/platform/platform-api/src/com/intellij/util/ui/AnimatedIcon.java @@ -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; diff --git a/platform/platform-api/src/com/intellij/util/ui/Animator.kt b/platform/platform-api/src/com/intellij/util/ui/Animator.kt index 1e96e340820b..c804d7a88bf5 100644 --- a/platform/platform-api/src/com/intellij/util/ui/Animator.kt +++ b/platform/platform-api/src/com/intellij/util/ui/Animator.kt @@ -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