From 0600ae556c9997c8d73ad203be7e552e83f167a7 Mon Sep 17 00:00:00 2001 From: Jay Bee <56894914+jtabox@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:56:02 +0200 Subject: [PATCH] Auto reload the config file if previously misconfigured --- src/dll/src/Initializer.cpp | 18 ++++++++++++++++-- src/dll/src/Main.cpp | 12 ++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/dll/src/Initializer.cpp b/src/dll/src/Initializer.cpp index 6c8d2b46..fb48695f 100644 --- a/src/dll/src/Initializer.cpp +++ b/src/dll/src/Initializer.cpp @@ -95,6 +95,8 @@ namespace Nilesoft cache->Packages.load(); + config_has_changed(); + if(!parser.Load()) { Status.Error = true; @@ -170,13 +172,16 @@ namespace Nilesoft { __try { + if(config_has_changed()) + Status.Refresh = true; + if(Status.Disabled) { uninit(); return false; } - if(Status.Error && ch < 2) + if(Status.Error && ch < 2 && !Status.Refresh) return false; if(Status.Refresh) @@ -228,7 +233,16 @@ namespace Nilesoft { if(Status.Error) { - return detect_changes ? !config_has_changed() : true; + if(Status.Refresh) + return false; + + if(detect_changes && config_has_changed()) + { + Status.Refresh = true; + return false; + } + + return true; } return false; } diff --git a/src/dll/src/Main.cpp b/src/dll/src/Main.cpp index 0c56bdaa..61b297e7 100644 --- a/src/dll/src/Main.cpp +++ b/src/dll/src/Main.cpp @@ -560,7 +560,7 @@ BOOL WINAPI NtUserTrackPopupMenu(HMENU hMenu, uint32_t uFlags, int x, int y, HWN // is injected from explorer if(!_initializer.Status.Loaded) { - if(_initializer.has_error() || has_inited) + if(_initializer.has_error(true) || has_inited) __leave; //goto skip; _initializer.init(); } @@ -758,10 +758,10 @@ LRESULT __stdcall TaskbarProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam } } - if(_initializer.has_error()) + if(_initializer.has_error(true)) { _initializer.OnState(); - if(_initializer.has_error()) + if(_initializer.has_error(true)) return wndproc(hWnd, uMsg, wParam, lParam); } else @@ -845,14 +845,14 @@ LRESULT __stdcall TaskbarSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } - if(_initializer.has_error()) + if(_initializer.has_error(true)) { if(msg != WM_RBUTTONDOWN) return lret; _initializer.OnState(); - if(_initializer.has_error()) + if(_initializer.has_error(true)) return lret; } else @@ -1164,7 +1164,7 @@ STDAPI DllGetClassObject(_In_ REFCLSID rclsid, [[maybe_unused]] _In_ REFIID riid if(!is_registered()) return hr; - if(_initializer.has_error()) + if(_initializer.has_error(true)) return hr; if(rclsid == IID_ContextMenu)