diff --git a/libs/wxutil/EntityClassChooser.cpp b/libs/wxutil/EntityClassChooser.cpp index 577c2090d4..a2e5aef4ca 100644 --- a/libs/wxutil/EntityClassChooser.cpp +++ b/libs/wxutil/EntityClassChooser.cpp @@ -10,6 +10,7 @@ #include "i18n.h" #include "ifavourites.h" #include "ideclmanager.h" +#include "ui/iuserinterface.h" #include "ui/imainframe.h" #include "gamelib.h" @@ -205,7 +206,7 @@ EntityClassChooser::EntityClassChooser(Purpose purpose) : // Listen for defs-reloaded signal (cannot bind directly to // ThreadedEntityClassLoader method because it is not sigc::trackable) _defsReloaded = GlobalDeclarationManager().signal_DeclsReloaded(decl::Type::EntityDef).connect( - sigc::mem_fun(this, &EntityClassChooser::loadEntityClasses) + [this]() { GlobalUserInterface().dispatch([this]() { loadEntityClasses(); }); } ); // Setup the tree view and invoke threaded loader to get the entity classes diff --git a/radiant/ui/UserInterfaceModule.cpp b/radiant/ui/UserInterfaceModule.cpp index 7b2d4b5e68..c88bac21c6 100644 --- a/radiant/ui/UserInterfaceModule.cpp +++ b/radiant/ui/UserInterfaceModule.cpp @@ -105,7 +105,10 @@ const StringSet& UserInterfaceModule::getDependencies() const MODULE_MRU_MANAGER, MODULE_MAINFRAME, MODULE_MOUSETOOLMANAGER, - MODULE_MAP + MODULE_MAP, + MODULE_PATCH, + MODULE_BRUSHCREATOR, + MODULE_TEXTOOL_SELECTIONSYSTEM, }; return _dependencies; @@ -237,7 +240,7 @@ void UserInterfaceModule::initialiseModule(const IApplicationContext& ctx) #endif _reloadMaterialsConn = GlobalDeclarationManager().signal_DeclsReloaded(decl::Type::Material) - .connect([]() { GlobalMainFrame().updateAllWindows(); }); + .connect([this]() { dispatch([]() { GlobalMainFrame().updateAllWindows(); }); }); } void UserInterfaceModule::shutdownModule() diff --git a/radiant/ui/einspector/EntityInspector.cpp b/radiant/ui/einspector/EntityInspector.cpp index 0bde5fada5..21577970a6 100644 --- a/radiant/ui/einspector/EntityInspector.cpp +++ b/radiant/ui/einspector/EntityInspector.cpp @@ -13,6 +13,7 @@ #include "ui/igroupdialog.h" #include "ui/imainframe.h" #include "itextstream.h" +#include "ui/iuserinterface.h" #include "module/StaticModule.h" #include "selectionlib.h" @@ -513,7 +514,7 @@ void EntityInspector::onKeyValueSetChanged(const std::string& key, const std::st void EntityInspector::onDefsReloaded() { - refresh(); + GlobalUserInterface().dispatch([this]() { refresh(); }); } void EntityInspector::refresh() diff --git a/radiant/ui/mediabrowser/MediaBrowser.cpp b/radiant/ui/mediabrowser/MediaBrowser.cpp index 18bc78303c..2cd18b1b0c 100644 --- a/radiant/ui/mediabrowser/MediaBrowser.cpp +++ b/radiant/ui/mediabrowser/MediaBrowser.cpp @@ -9,6 +9,7 @@ #include "ishaders.h" #include "ishaderclipboard.h" #include "ifavourites.h" +#include "ui/iuserinterface.h" #include "wxutil/MultiMonitor.h" #include "wxutil/dataview/ResourceTreeViewToolbar.h" @@ -31,6 +32,7 @@ #include #include "string/predicate.h" +#include "ui/UserInterfaceModule.h" namespace ui { @@ -133,12 +135,12 @@ void MediaBrowser::setSelection(const std::string& selection) void MediaBrowser::onMaterialDefsLoaded() { - _treeView->Populate(); + GlobalUserInterface().dispatch([this]() { _treeView->Populate(); }); } void MediaBrowser::onMaterialDefsUnloaded() { - _treeView->Clear(); + GlobalUserInterface().dispatch([this]() { _treeView->Clear(); }); } void MediaBrowser::_onTreeViewSelectionChanged(wxDataViewEvent& ev) @@ -180,7 +182,8 @@ const StringSet& MediaBrowser::getDependencies() const MODULE_SHADERCLIPBOARD, MODULE_MAINFRAME, MODULE_FAVOURITES_MANAGER, - MODULE_MAP + MODULE_MAP, + MODULE_USERINTERFACE, }; return _dependencies;