From 11186dd4981db5ca002d343f87fe35dadaecb930 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Sun, 27 Jul 2025 10:33:34 +0800 Subject: [PATCH] opt: optimize reload config code struct --- src/config/parse_config.h | 44 ++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/config/parse_config.h b/src/config/parse_config.h index 7c96b6b..bf66679 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -2584,10 +2584,12 @@ void reapply_monitor_rules(void) { mr = &config.monitor_rules[ji]; if (!mr->name || regex_match(mr->name, m->wlr_output->name)) { + m->mfact = mr->mfact; m->nmaster = mr->nmaster; m->m.x = mr->x; m->m.y = mr->y; + if (mr->layout) { for (jk = 0; jk < LENGTH(layouts); jk++) { if (strcmp(layouts[jk].name, mr->layout) == 0) { @@ -2613,18 +2615,8 @@ void reapply_monitor_rules(void) { } } -void reload_config(const Arg *arg) { +void reapply_border(void) { Client *c; - Monitor *m; - int i, jk; - Keyboard *kb; - char *rule_monitor_name = NULL; - parse_config(); - init_baked_points(); - handlecursoractivity(); - reset_keyboard_layout(); - reset_blur_params(); - run_exec(); // reset border width when config change wl_list_for_each(c, &clients, link) { @@ -2634,14 +2626,20 @@ void reload_config(const Arg *arg) { } } } +} - // reset keyboard repeat rate when config change +void reapply_keyboard(void) { + Keyboard *kb; wl_list_for_each(kb, &keyboards, link) { wlr_keyboard_set_repeat_info(kb->wlr_keyboard, repeat_rate, repeat_delay); } +} - // reset master status when config change +void reapply_master(void) { + + int i; + Monitor *m; for (i = 0; i <= LENGTH(tags); i++) { wl_list_for_each(m, &mons, link) { if (!m->wlr_output->enabled) { @@ -2656,8 +2654,12 @@ void reload_config(const Arg *arg) { m->gappov = gappov; } } +} - // reset tag status by tag rules +void reapply_tagrule(void) { + Monitor *m; + int i, jk; + char *rule_monitor_name = NULL; wl_list_for_each(m, &mons, link) { if (!m->wlr_output->enabled) { continue; @@ -2680,7 +2682,21 @@ void reload_config(const Arg *arg) { } } } +} +void reload_config(const Arg *arg) { + parse_config(); + init_baked_points(); + handlecursoractivity(); + reset_keyboard_layout(); + reset_blur_params(); + run_exec(); + + reapply_border(); + reapply_keyboard(); + reapply_master(); + + reapply_tagrule(); reapply_monitor_rules(); arrange(selmon, false);