From d2e7605e5cefc7ef5c86693b9e5ce48086f40354 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Fri, 8 May 2026 18:58:55 +0200 Subject: [PATCH] Fix "transitioning from" check not working in studio mode --- plugins/base/macro-condition-transition.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/base/macro-condition-transition.cpp b/plugins/base/macro-condition-transition.cpp index c84dd305..4da8f3f4 100644 --- a/plugins/base/macro-condition-transition.cpp +++ b/plugins/base/macro-condition-transition.cpp @@ -158,8 +158,21 @@ void MacroConditionTransition::TransitionStarted(void *data, calldata_t *cd) OBSSourceAutoRelease startSource = obs_transition_get_source( transitionSource, OBS_TRANSITION_SOURCE_A); + + // In studio mode, source A may be a private copy of the scene. + // Look up the original by name to get a comparable reference. + const bool studioModeActive = + obs_frontend_preview_program_mode_active(); + if (studioModeActive) { + OBSSourceAutoRelease startSourceByName = obs_get_source_by_name( + obs_source_get_name(startSource)); + if (startSourceByName) { + startSource = std::move(startSourceByName); + } + } + OBSSourceAutoRelease endSource = - obs_frontend_preview_program_mode_active() + studioModeActive ? obs_frontend_get_current_scene() : obs_transition_get_source(transitionSource, OBS_TRANSITION_SOURCE_B);