Skip to content

Commit dbde5e3

Browse files
[Runner]remove hotkeyEx when disabling a module (#15944)
1 parent bed7f2a commit dbde5e3

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/runner/general_settings.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -149,20 +149,23 @@ void apply_general_settings(const json::JsonObject& general_configs, bool save)
149149
{
150150
continue;
151151
}
152-
const bool module_inst_enabled = modules().at(name)->is_enabled();
152+
PowertoyModule& powertoy = modules().at(name);
153+
const bool module_inst_enabled = powertoy->is_enabled();
153154
const bool target_enabled = value.GetBoolean();
154155
if (module_inst_enabled == target_enabled)
155156
{
156157
continue;
157158
}
158159
if (target_enabled)
159160
{
160-
modules().at(name)->enable();
161+
powertoy->enable();
161162
}
162163
else
163164
{
164-
modules().at(name)->disable();
165+
powertoy->disable();
165166
}
167+
// Sync the hotkey state with the module state, so it can be removed for disabled modules.
168+
powertoy.UpdateHotkeyEx();
166169
}
167170
}
168171

@@ -221,6 +224,7 @@ void start_enabled_powertoys()
221224
if (!powertoys_to_disable.contains(name))
222225
{
223226
powertoy->enable();
227+
powertoy.UpdateHotkeyEx();
224228
}
225229
}
226230
}

src/runner/powertoy_module.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,12 @@ void PowertoyModule::UpdateHotkeyEx()
7474
{
7575
CentralizedHotkeys::UnregisterHotkeysForModule(pt_module->get_key());
7676
auto container = pt_module->GetHotkeyEx();
77-
if (container.has_value())
77+
if (container.has_value() && pt_module->is_enabled())
7878
{
7979
auto hotkey = container.value();
8080
auto modulePtr = pt_module.get();
8181
auto action = [modulePtr](WORD modifiersMask, WORD vkCode) {
82+
Logger::trace(L"{} hotkey Ex is invoked from Centralized keyboard hook", modulePtr->get_key());
8283
modulePtr->OnHotkeyEx();
8384
};
8485

0 commit comments

Comments
 (0)