From ef6ceb73a75a90edb9721e5ce2d034e401620fc2 Mon Sep 17 00:00:00 2001 From: Maksim Zuev Date: Thu, 5 Feb 2026 12:10:45 +0100 Subject: [PATCH] [rd debugger] IJPL-233473 Fix pause action supported passing (cherry picked from commit 43a87b61067d6e72d6d43b0ea40da76b6f95270e) IJ-CR-192067 GitOrigin-RevId: 7e21733d3ba01f2020c9cbfa486d60df444f4a77 --- .../debugger/impl/backend/BackendXDebuggerManagerApi.kt | 2 +- .../debugger/impl/frontend/FrontendXDebuggerSession.kt | 4 +++- .../platform/debugger/impl/rpc/XDebuggerManagerApi.kt | 4 +++- .../src/com/intellij/xdebugger/impl/XDebugSessionImpl.kt | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/xdebugger-impl/backend/src/com/intellij/platform/debugger/impl/backend/BackendXDebuggerManagerApi.kt b/platform/xdebugger-impl/backend/src/com/intellij/platform/debugger/impl/backend/BackendXDebuggerManagerApi.kt index b32b1a70b1ee..2c7cb6b394bd 100644 --- a/platform/xdebugger-impl/backend/src/com/intellij/platform/debugger/impl/backend/BackendXDebuggerManagerApi.kt +++ b/platform/xdebugger-impl/backend/src/com/intellij/platform/debugger/impl/backend/BackendXDebuggerManagerApi.kt @@ -321,7 +321,7 @@ fun XDebugSessionImpl.getSessionEventsFlow( } override fun settingsChanged() { - rawEvents.trySend { XDebuggerSessionEvent.SettingsChanged } + rawEvents.trySend { XDebuggerSessionEvent.SettingsChanged(currentSession.state()) } } override fun settingsChangedFromFrontend() { diff --git a/platform/xdebugger-impl/frontend/src/com/intellij/platform/debugger/impl/frontend/FrontendXDebuggerSession.kt b/platform/xdebugger-impl/frontend/src/com/intellij/platform/debugger/impl/frontend/FrontendXDebuggerSession.kt index f7107b7c6642..027fc1ce3b8a 100644 --- a/platform/xdebugger-impl/frontend/src/com/intellij/platform/debugger/impl/frontend/FrontendXDebuggerSession.kt +++ b/platform/xdebugger-impl/frontend/src/com/intellij/platform/debugger/impl/frontend/FrontendXDebuggerSession.kt @@ -301,7 +301,9 @@ class FrontendXDebuggerSession( currentStackFrame.value = StackFrameUpdate.notifyChanged(newFrame) } is XDebuggerSessionEvent.BreakpointsMuted -> {} - XDebuggerSessionEvent.SettingsChanged -> {} + is XDebuggerSessionEvent.SettingsChanged -> { + updateState() + } } } diff --git a/platform/xdebugger-impl/rpc/src/com/intellij/platform/debugger/impl/rpc/XDebuggerManagerApi.kt b/platform/xdebugger-impl/rpc/src/com/intellij/platform/debugger/impl/rpc/XDebuggerManagerApi.kt index 9aa5b0a64970..cdededacacc1 100644 --- a/platform/xdebugger-impl/rpc/src/com/intellij/platform/debugger/impl/rpc/XDebuggerManagerApi.kt +++ b/platform/xdebugger-impl/rpc/src/com/intellij/platform/debugger/impl/rpc/XDebuggerManagerApi.kt @@ -126,7 +126,9 @@ sealed interface XDebuggerSessionEvent { ) : EventWithState @Serializable - object SettingsChanged : XDebuggerSessionEvent + class SettingsChanged( + override val state: XDebugSessionState, + ) : EventWithState @Serializable data class BreakpointsMuted(val muted: Boolean) : XDebuggerSessionEvent diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.kt b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.kt index d5eeb01a3565..bf7de2d4b2a6 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.kt +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.kt @@ -297,7 +297,9 @@ class XDebugSessionImpl @JvmOverloads constructor( } override fun setPauseActionSupported(isSupported: Boolean) { + if (sessionData.isPauseSupported == isSupported) return sessionData.isPauseSupported = isSupported + myDispatcher.getMulticaster().settingsChanged() } var isReadOnly: Boolean