mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-189392 ApplicationActivationStateManager - use strict ui dispatcher to update state, and then relax ui dispatcher to fire event
GitOrigin-RevId: 04d20a826e6c8545d507f3f0e3d835492c3810e9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1cc2e39830
commit
7c1a46a53e
@@ -57,7 +57,7 @@ object ApplicationActivationStateManager {
|
||||
delayedDeactivatedJob?.cancel()
|
||||
delayedDeactivatedJob = app.getCoroutineScope().launch(CoroutineName("ApplicationDeactivation")) {
|
||||
delay(Registry.intValue("application.deactivation.timeout", 1_500).milliseconds)
|
||||
withContext(Dispatchers.EDT + ModalityState.any().asContextElement()) {
|
||||
withContext(Dispatchers.ui(UiDispatcherKind.STRICT) + ModalityState.any().asContextElement()) {
|
||||
if (state != ApplicationActivationStateManagerState.DEACTIVATING) {
|
||||
return@withContext
|
||||
}
|
||||
@@ -67,7 +67,10 @@ object ApplicationActivationStateManager {
|
||||
val ideFrame = getIdeFrameFromWindow(window)
|
||||
if (ideFrame != null) {
|
||||
// getIdeFrameFromWindow returns something from a UI tree, so, if not null, it must be Window
|
||||
app.getMessageBus().syncPublisher(ApplicationActivationListener.TOPIC).delayedApplicationDeactivated(ideFrame as Window)
|
||||
val publisher = app.getMessageBus().syncPublisher(ApplicationActivationListener.TOPIC)
|
||||
withContext(Dispatchers.ui(UiDispatcherKind.RELAX)) {
|
||||
publisher.delayedApplicationDeactivated(ideFrame as Window)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user