mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[editor] IJPL-221939 only wait once for animated spinner
GitOrigin-RevId: e8f7cd06724600825145e41f1193c734a17a8a13
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4bd9ed87a5
commit
0f174fd3be
+7
-3
@@ -26,6 +26,7 @@ import kotlin.time.Duration.Companion.milliseconds
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
internal class SpinnerTabIconHolder(composite: EditorComposite, private val owner: TabInfo) : TabInfoIconHolder {
|
||||
private val delayFromRegistry = Registry.intValue("editor.loading.spinner.delay.ms", 0).milliseconds
|
||||
private val isStaticSpinner = Registry.`is`("editor.loading.spinner.static")
|
||||
|
||||
private var icon: Icon?
|
||||
|
||||
@@ -39,7 +40,11 @@ internal class SpinnerTabIconHolder(composite: EditorComposite, private val owne
|
||||
init {
|
||||
composite.coroutineScope.launch(CoroutineName("EditorComposite(file=${composite.file.name}.iconLoading") + ModalityState.any()
|
||||
.asContextElement()) out@{
|
||||
val loadingSpinnerWaiting = launch { delay(delayFromRegistry) }
|
||||
val loadingSpinnerWaiting = launch {
|
||||
if (!isStaticSpinner) {
|
||||
delay(delayFromRegistry)
|
||||
}
|
||||
}
|
||||
val iconProcessingWaiting = launch { composite.waitForAvailable() }
|
||||
select {
|
||||
loadingSpinnerWaiting.onJoin {
|
||||
@@ -65,10 +70,9 @@ internal class SpinnerTabIconHolder(composite: EditorComposite, private val owne
|
||||
}
|
||||
|
||||
private suspend fun setLoadingSpinner() {
|
||||
if (Registry.`is`("editor.loading.spinner.static")) {
|
||||
if (isStaticSpinner) {
|
||||
setIconImmediately(AllIcons.Ide.GrayDot)
|
||||
} else {
|
||||
delay(delayFromRegistry)
|
||||
setIconImmediately(AnimatedIcon.Default.INSTANCE)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user