UI: Fix possible crash due to UI property access from graphics thread

Selection state can change by main thread while UI thread (which
calls DrawSpacingHelpers) tries to evaluate the amount of selected
items. Get amount of selected items by enumerating over the scene data
instead (which stays within the graphics thread).
This commit is contained in:
PatTheMav
2022-10-11 17:31:24 +02:00
committed by Jim
parent feda64e9c6
commit e2db9b7f70

View File

@@ -2453,7 +2453,12 @@ void OBSBasicPreview::DrawSpacingHelpers()
OBSBasic *main = OBSBasic::Get();
if (main->ui->sources->selectionModel()->selectedIndexes().count() > 1)
vec2 s;
SceneFindBoxData data(s, s);
obs_scene_enum_items(main->GetCurrentScene(), FindSelected, &data);
if (data.sceneItems.size() > 1)
return;
OBSSceneItem item = main->GetCurrentSceneItem();