diff --git a/UI/window-basic-preview.cpp b/UI/window-basic-preview.cpp index 361e318c2f360c..c5ee42966c0a0c 100644 --- a/UI/window-basic-preview.cpp +++ b/UI/window-basic-preview.cpp @@ -2488,9 +2488,20 @@ void OBSBasicPreview::DrawSpacingHelpers() vec3 start, end; float pixelRatio = main->GetDevicePixelRatio(); - for (int i = 0; i < 4; i++) { - if (!spacerLabel[i]) - spacerLabel[i] = CreateLabel(pixelRatio, i); + if (!labelCreated) { + QMetaObject::invokeMethod(this, [this, pixelRatio]() { + if (labelCreated) + return; + + for (int i = 0; i < 4; i++) { + if (!spacerLabel[i]) + spacerLabel[i] = CreateLabel(pixelRatio, i); + } + + labelCreated = true; + }); + + return; // wait label source to be created } vec3_set(&start, top.x, 0.0f, 1.0f); diff --git a/UI/window-basic-preview.hpp b/UI/window-basic-preview.hpp index e880a8dac9713a..6121cf755f64a7 100644 --- a/UI/window-basic-preview.hpp +++ b/UI/window-basic-preview.hpp @@ -188,6 +188,7 @@ private slots: static inline void operator delete(void *ptr) { bfree(ptr); } OBSSourceAutoRelease spacerLabel[4]; + bool labelCreated = false; int spacerPx[4] = {0}; void DrawSpacingHelpers();