Disabling powertoy only if it's explicitly off (#1888)

* Disabling powertoy only if it's explicitly off
This commit is contained in:
Yevhenii Holovachov
2020-04-02 21:39:40 +03:00
committed by GitHub
parent 5c01e0e852
commit cea5668a9f

View File

@@ -199,9 +199,7 @@ void apply_general_settings(const json::JsonObject& general_configs)
void start_initial_powertoys() void start_initial_powertoys()
{ {
bool only_enable_some_powertoys = false; std::unordered_set<std::wstring> powertoys_to_disable;
std::unordered_set<std::wstring> powertoys_to_enable;
json::JsonObject general_settings; json::JsonObject general_settings;
try try
@@ -210,34 +208,32 @@ void start_initial_powertoys()
if (general_settings.HasKey(L"enabled")) if (general_settings.HasKey(L"enabled"))
{ {
json::JsonObject enabled = general_settings.GetNamedObject(L"enabled"); json::JsonObject enabled = general_settings.GetNamedObject(L"enabled");
for (const auto& enabled_element : enabled) for (const auto& disabled_element : enabled)
{ {
if (enabled_element.Value().GetBoolean()) if (!disabled_element.Value().GetBoolean())
{ {
// Enable this powertoy. powertoys_to_disable.emplace(disabled_element.Key());
powertoys_to_enable.emplace(enabled_element.Key());
} }
} }
only_enable_some_powertoys = true;
} }
} }
catch (...) catch (...) { }
{
only_enable_some_powertoys = false;
}
for (auto& [name, powertoy] : modules()) if (powertoys_to_disable.empty())
{ {
if (only_enable_some_powertoys) for (auto& [name, powertoy] : modules())
{
if (powertoys_to_enable.find(name) != powertoys_to_enable.end())
{
powertoy->enable();
}
}
else
{ {
powertoy->enable(); powertoy->enable();
} }
} }
else
{
for (auto& [name, powertoy] : modules())
{
if (powertoys_to_disable.find(name) == powertoys_to_disable.end())
{
powertoy->enable();
}
}
}
} }