diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-05-06 13:35:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-06 13:35:37 +0100 |
| commit | 5f1350f522d3fe3af78cbe30a98311763b3509d5 (patch) | |
| tree | 5c3b913c32e31008b057d505e81e056f4a936f09 | |
| parent | 6dc42e0f6d777109b6c8203dccf5c5d421b1fa04 (diff) | |
config/refresher: refresh watcher state properly (#14307)
ref #14301
| -rw-r--r-- | src/config/legacy/ConfigManager.cpp | 2 | ||||
| -rw-r--r-- | src/config/lua/ConfigManager.cpp | 2 | ||||
| -rw-r--r-- | src/config/supplementary/propRefresher/PropRefresher.cpp | 4 | ||||
| -rw-r--r-- | src/config/supplementary/propRefresher/PropRefresher.hpp | 3 | ||||
| -rw-r--r-- | src/config/values/ConfigValues.cpp | 2 |
5 files changed, 7 insertions, 6 deletions
diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index 3b397b42..bbb63daf 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -959,8 +959,6 @@ Hyprlang::CParseResult CConfigManager::reloadRules() { } void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) { - Config::watcher()->update(); - for (auto const& w : g_pCompositor->m_windows) { w->uncacheWindowDecos(); } diff --git a/src/config/lua/ConfigManager.cpp b/src/config/lua/ConfigManager.cpp index 685f925f..3ad70b9b 100644 --- a/src/config/lua/ConfigManager.cpp +++ b/src/config/lua/ConfigManager.cpp @@ -482,8 +482,6 @@ void CConfigManager::postConfigReload() { static auto PENABLESTDOUT = CConfigValue<Config::INTEGER>("debug.enable_stdout_logs"); static auto PAUTOGENERATED = CConfigValue<Config::INTEGER>("autogenerated"); - Config::watcher()->update(); - for (auto const& w : g_pCompositor->m_windows) { w->uncacheWindowDecos(); } diff --git a/src/config/supplementary/propRefresher/PropRefresher.cpp b/src/config/supplementary/propRefresher/PropRefresher.cpp index 0715594b..675a68ef 100644 --- a/src/config/supplementary/propRefresher/PropRefresher.cpp +++ b/src/config/supplementary/propRefresher/PropRefresher.cpp @@ -10,6 +10,7 @@ #include "../../../desktop/rule/Engine.hpp" #include "../../shared/monitor/MonitorRuleManager.hpp" +#include "../../shared/inotify/ConfigWatcher.hpp" using namespace Config; using namespace Config::Supplementary; @@ -92,6 +93,9 @@ void CPropRefresher::scheduleRefresh(PropRefreshBits prop) { } } + if (m_propsTripped & REFRESH_CONFIG_WATCHER) + Config::watcher()->update(); + m_scheduled = false; m_propsTripped = 0; }); diff --git a/src/config/supplementary/propRefresher/PropRefresher.hpp b/src/config/supplementary/propRefresher/PropRefresher.hpp index e8094753..3d4d29e3 100644 --- a/src/config/supplementary/propRefresher/PropRefresher.hpp +++ b/src/config/supplementary/propRefresher/PropRefresher.hpp @@ -6,7 +6,7 @@ #include "../../../helpers/memory/Memory.hpp" namespace Config::Supplementary { - enum ePropRefreshProp : uint8_t { + enum ePropRefreshProp : uint16_t { REFRESH_LAYOUTS = (1 << 0), REFRESH_INPUT_DEVICES = (1 << 1), REFRESH_SCREEN_SHADER = (1 << 2), @@ -15,6 +15,7 @@ namespace Config::Supplementary { REFRESH_WINDOW_STATES = (1 << 5) | REFRESH_RULES, REFRESH_MONITOR_STATES = (1 << 6) | REFRESH_LAYOUTS, REFRESH_CURSOR_ZOOMS = (1 << 7), + REFRESH_CONFIG_WATCHER = (1 << 8), REFRESH_ALL = std::numeric_limits<std::underlying_type_t<ePropRefreshProp>>::max(), }; diff --git a/src/config/values/ConfigValues.cpp b/src/config/values/ConfigValues.cpp index ff23ab5d..abf8ecab 100644 --- a/src/config/values/ConfigValues.cpp +++ b/src/config/values/ConfigValues.cpp @@ -453,7 +453,7 @@ std::vector<SP<IValue>> Values::getConfigValues() { MS<Bool>("misc:layers_hog_keyboard_focus", "If true, will make keyboard-interactive layers keep their focus on mouse move.", true), MS<Bool>("misc:animate_manual_resizes", "If true, will animate manual window resizes/moves", false), MS<Bool>("misc:animate_mouse_windowdragging", "If true, will animate windows being dragged by mouse.", false), - MS<Bool>("misc:disable_autoreload", "If true, the config will not reload automatically on save.", false), + MS<Bool>("misc:disable_autoreload", "If true, the config will not reload automatically on save.", false, {.refresh = Supplementary::REFRESH_CONFIG_WATCHER}), MS<Bool>("misc:enable_swallow", "Enable window swallowing", false), MS<String>("misc:swallow_regex", "The class regex to be used for windows that should be swallowed.", STRVAL_EMPTY), MS<String>("misc:swallow_exception_regex", "The title regex to be used for windows that should not be swallowed.", STRVAL_EMPTY), |
