diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapFloatingToolbarProvider.kt b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapFloatingToolbarProvider.kt index f6a1f74fcf4b..0461787d5ee1 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapFloatingToolbarProvider.kt +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapFloatingToolbarProvider.kt @@ -88,6 +88,7 @@ internal class HotSwapFloatingToolbarProvider : FloatingToolbarProvider { override fun onStatusChanged(session: HotSwapSession<*>, status: HotSwapVisibleStatus) { if (status == HotSwapVisibleStatus.IN_PROGRESS) { hotSwapAction.inProgress = true + hotSwapAction.session = null return } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapSessionManager.kt b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapSessionManager.kt index f7391e481895..214787bae213 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapSessionManager.kt +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/hotswap/HotSwapSessionManager.kt @@ -58,6 +58,7 @@ class HotSwapSession(val project: Project, internal val provider: HotSwapProv @Volatile internal var currentStatus: HotSwapVisibleStatus = HotSwapVisibleStatus.NO_CHANGES private set(value) { + if (field == value) return field = value HotSwapSessionManager.getInstance(project).fireStatusChanged(this, value) } @@ -100,6 +101,7 @@ class HotSwapSession(val project: Project, internal val provider: HotSwapProv } override fun onCanceled() { + currentStatus = HotSwapVisibleStatus.CHANGES_READY } } }