diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 6cc4fa921..97d61118f 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3733,23 +3733,15 @@ void OBSBasic::CreateSourcePopupMenu(QListWidgetItem *item, bool preview) popup.addAction(ui->actionLockPreview); popup.addMenu(ui->scalingMenu); - const char *slot = IsPreviewProgramMode() - ? SLOT(OpenStudioProgramProjector()) - : SLOT(OpenPreviewProjector()); - previewProjector = new QMenu(QTStr("PreviewProjector")); AddProjectorMenuMonitors(previewProjector, this, - slot); + SLOT(OpenPreviewProjector())); popup.addMenu(previewProjector); - slot = IsPreviewProgramMode() - ? SLOT(OpenStudioProgramWindow()) - : SLOT(OpenPreviewWindow()); - QAction *previewWindow = popup.addAction( QTStr("PreviewWindow"), - this, slot); + this, SLOT(OpenPreviewWindow())); popup.addAction(previewWindow); @@ -4951,13 +4943,13 @@ void OBSBasic::on_program_customContextMenuRequested(const QPoint&) studioProgramProjector = new QMenu( QTStr("StudioProgramProjector")); AddProjectorMenuMonitors(studioProgramProjector, this, - SLOT(OpenPreviewProjector())); + SLOT(OpenStudioProgramProjector())); popup.addMenu(studioProgramProjector); QAction *studioProgramWindow = popup.addAction( QTStr("StudioProgramWindow"), - this, SLOT(OpenPreviewWindow())); + this, SLOT(OpenStudioProgramWindow())); popup.addAction(studioProgramWindow); diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index c7bfc4d37..fee372642 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -327,11 +327,6 @@ private: int disableOutputsRef = 0; - inline bool IsPreviewProgramMode() const - { - return os_atomic_load_bool(&previewProgramMode); - } - inline void OnActivate(); inline void OnDeactivate(); @@ -495,6 +490,11 @@ public: obs_service_t *GetService(); void SetService(obs_service_t *service); + inline bool IsPreviewProgramMode() const + { + return os_atomic_load_bool(&previewProgramMode); + } + bool StreamingActive() const; bool Active() const; diff --git a/UI/window-projector.cpp b/UI/window-projector.cpp index 50b9bd990..7b63a6237 100644 --- a/UI/window-projector.cpp +++ b/UI/window-projector.cpp @@ -73,12 +73,6 @@ void OBSProjector::Init(int monitor, bool window, QString title, show(); - if (studioProgram && !source) { - OBSBasic *main = - reinterpret_cast(App()->GetMainWindow()); - source = main->GetCurrentSceneSource(); - } - if (source) obs_source_inc_showing(source); @@ -99,6 +93,7 @@ void OBSProjector::Init(int monitor, bool window, QString title, void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy) { OBSProjector *window = reinterpret_cast(data); + OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); uint32_t targetCX; uint32_t targetCY; @@ -126,14 +121,10 @@ void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy) gs_ortho(0.0f, float(targetCX), 0.0f, float(targetCY), -100.0f, 100.0f); gs_set_viewport(x, y, newCX, newCY); - if (window->useStudioProgram) { - OBSBasic *main = - reinterpret_cast(App()->GetMainWindow()); + if (!window->useStudioProgram && main->IsPreviewProgramMode()) { OBSSource curSource = main->GetCurrentSceneSource(); if (window->source != curSource) { - blog(LOG_INFO, "new scene for studio preview projector: '%s'", - obs_source_get_name(curSource)); obs_source_dec_showing(window->source); obs_source_inc_showing(curSource); window->source = curSource;