diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt index 8270baba7..ac5411056 100644 --- a/UI/CMakeLists.txt +++ b/UI/CMakeLists.txt @@ -7,7 +7,7 @@ else() set(FIND_MODE QUIET) endif() -if(BROWSER_AVAILABLE_INTERNAL AND WIN32) +if(BROWSER_AVAILABLE_INTERNAL) add_definitions(-DBROWSER_AVAILABLE) endif() diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index a53ff328c..101587826 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1640,14 +1640,12 @@ void OBSBasic::OBSInit() SET_VISIBILITY("ShowStatusBar", toggleStatusBar); #undef SET_VISIBILITY -#ifndef __APPLE__ { ProfileScope("OBSBasic::Load"); disableSaving--; Load(savePath); disableSaving++; } -#endif TimedCheckForUpdates(); loaded = true; @@ -1669,9 +1667,7 @@ void OBSBasic::OBSInit() } #endif -#ifndef __APPLE__ RefreshSceneCollections(); -#endif RefreshProfiles(); disableSaving--; @@ -1809,28 +1805,12 @@ void OBSBasic::OBSInit() ui->actionCheckForUpdates = nullptr; #endif -#ifdef __APPLE__ - /* This is an incredibly unpleasant hack for macOS to isolate CEF - * initialization until after all tasks related to Qt startup and main - * window initialization have completed. There is a macOS-specific bug - * within either CEF and/or Qt that can cause a crash if both Qt and - * CEF are loading at the same time. - * - * CEF will typically load fine after about two iterations from this - * point, and all Qt tasks are typically fully completed after about - * four or five iterations, but to be "ultra" safe, an arbitrarily - * large number such as 10 is used. This hack is extremely unpleasant, - * but is worth doing instead of being forced to isolate the entire - * browser plugin in to a separate process as before. - * - * Again, this hack is specific to macOS only. Fortunately, on other - * operating systems, such issues do not occur. */ - QMetaObject::invokeMethod(this, "DeferredLoad", - Qt::QueuedConnection, - Q_ARG(QString, QT_UTF8(savePath)), - Q_ARG(int, 10)); -#else OnFirstLoad(); + +#ifdef __APPLE__ + QMetaObject::invokeMethod(this, "DeferredSysTrayLoad", + Qt::QueuedConnection, + Q_ARG(int, 10)); #endif } @@ -1857,20 +1837,15 @@ void OBSBasic::OnFirstLoad() Auth::Load(); } -void OBSBasic::DeferredLoad(const QString &file, int requeueCount) +void OBSBasic::DeferredSysTrayLoad(int requeueCount) { if (--requeueCount > 0) { - QMetaObject::invokeMethod(this, "DeferredLoad", + QMetaObject::invokeMethod(this, "DeferredSysTrayLoad", Qt::QueuedConnection, - Q_ARG(QString, file), Q_ARG(int, requeueCount)); return; } - Load(QT_TO_UTF8(file)); - RefreshSceneCollections(); - OnFirstLoad(); - /* Minimizng to tray on initial startup does not work on mac * unless it is done in the deferred load */ SystemTray(true); diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 120408dc3..d624dcc8d 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -796,7 +796,7 @@ private slots: void OpenMultiviewWindow(); void OpenSceneWindow(); - void DeferredLoad(const QString &file, int requeueCount); + void DeferredSysTrayLoad(int requeueCount); void StackedMixerAreaContextMenuRequested(); diff --git a/plugins/obs-browser b/plugins/obs-browser index f94f90969..c1123b980 160000 --- a/plugins/obs-browser +++ b/plugins/obs-browser @@ -1 +1 @@ -Subproject commit f94f909690b2acc57d71ed767bd527d86321dad3 +Subproject commit c1123b9806df9bf605f5b14054c5fb6279dff45e