diff options
| author | Tuur Vanhoutte <4633209+zjeffer@users.noreply.github.com> | 2024-12-30 00:09:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-29 23:09:17 +0000 |
| commit | 5b37d53992f3f9bfd7f5483a85f99adf7ac104f3 (patch) | |
| tree | 931a2651d088b22932a5a90cc520f0fb946f9549 /hyprpm/src/core/PluginManager.cpp | |
| parent | deb077c34653eab251bfe71970bb5987913e7c6d (diff) | |
hyprpm: add an option to force reload all plugins (#8883)
Diffstat (limited to 'hyprpm/src/core/PluginManager.cpp')
| -rw-r--r-- | hyprpm/src/core/PluginManager.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp index a3bd5a09..80d0a402 100644 --- a/hyprpm/src/core/PluginManager.cpp +++ b/hyprpm/src/core/PluginManager.cpp @@ -780,7 +780,7 @@ bool CPluginManager::disablePlugin(const std::string& name) { return ret; } -ePluginLoadStateReturn CPluginManager::ensurePluginsLoadState() { +ePluginLoadStateReturn CPluginManager::ensurePluginsLoadState(bool forceReload) { if (headersValid() != HEADERS_OK) { std::println(stderr, "\n{}", failureString("headers are not up-to-date, please run hyprpm update.")); return LOADSTATE_HEADERS_OUTDATED; @@ -841,9 +841,9 @@ ePluginLoadStateReturn CPluginManager::ensurePluginsLoadState() { // (and Hyprland needs to restart) bool hyprlandVersionMismatch = false; - // unload disabled plugins + // unload disabled plugins (or all if forceReload is true) for (auto const& p : loadedPlugins) { - if (!enabled(p)) { + if (forceReload || !enabled(p)) { // unload if (!loadUnloadPlugin(HYPRPMPATH / repoForName(p) / (p + ".so"), false)) { std::println("{}", infoString("{} will be unloaded after restarting Hyprland", p)); @@ -859,7 +859,7 @@ ePluginLoadStateReturn CPluginManager::ensurePluginsLoadState() { if (!p.enabled) continue; - if (std::find_if(loadedPlugins.begin(), loadedPlugins.end(), [&](const auto& other) { return other == p.name; }) != loadedPlugins.end()) + if (!forceReload && std::find_if(loadedPlugins.begin(), loadedPlugins.end(), [&](const auto& other) { return other == p.name; }) != loadedPlugins.end()) continue; if (!loadUnloadPlugin(HYPRPMPATH / repoForName(p.name) / p.filename, true)) { |
