Browse Source

Merge pull request #1297 from Palakis/preview-scene-event-fix

UI: Fix OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED
Jim 7 years ago
parent
commit
f1c1abce55
2 changed files with 13 additions and 4 deletions
  1. 2 3
      UI/window-basic-main-transitions.cpp
  2. 11 1
      UI/window-basic-main.cpp

+ 2 - 3
UI/window-basic-main-transitions.cpp

@@ -639,12 +639,11 @@ void OBSBasic::SetCurrentScene(OBSSource scene, bool force, bool direct)
 				ui->scenes->blockSignals(true);
 				ui->scenes->setCurrentItem(item);
 				ui->scenes->blockSignals(false);
+				if (api)
+					api->on_event(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
 				break;
 			}
 		}
-
-		if (api && IsPreviewProgramMode())
-			api->on_event(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
 	}
 
 	UpdateSceneSelection(scene);

+ 11 - 1
UI/window-basic-main.cpp

@@ -900,8 +900,10 @@ retryScene:
 
 	disableSaving--;
 
-	if (api)
+	if (api) {
 		api->on_event(OBS_FRONTEND_EVENT_SCENE_CHANGED);
+		api->on_event(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
+	}
 }
 
 #define SERVICE_PATH "service.json"
@@ -2271,6 +2273,11 @@ void OBSBasic::UpdateSceneSelection(OBSSource source)
 			sceneChanging = false;
 
 			UpdateSources(scene);
+
+			OBSScene curScene =
+				GetOBSRef<OBSScene>(ui->scenes->currentItem());
+			if (api && scene != curScene)
+				api->on_event(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
 		}
 	}
 }
@@ -3508,6 +3515,9 @@ void OBSBasic::on_scenes_currentItemChanged(QListWidgetItem *current,
 
 	SetCurrentScene(source);
 
+	if (api)
+		api->on_event(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
+
 	UNUSED_PARAMETER(prev);
 }