config/refresher: refresh watcher state properly

ref #14301
This commit is contained in:
Vaxry 2026-05-06 12:46:25 +01:00
parent 6dc42e0f6d
commit fb48e2bbbe
No known key found for this signature in database
5 changed files with 7 additions and 6 deletions

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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;
});

View file

@ -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(),
};

View file

@ -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),