Commit 38b12b7c9c25b2970076d21fee8e1a5de6e337b1 Parent: 03e7e6ccdf37a78444abb5a508042a6f615df4e0 Author: mcol <mcol@posteo.net> Date: 2021-01-23 00:37:06 +0000 Committer: mcol <mcol@posteo.net> Committed: 2021-01-23 00:37:06 +0000 Clear keybindings when loading config; ensure all settings are set-able
src/config.c Modified
@@ -338,6 +338,14 @@ s = strtok(NULL, " \t\n\r"); if (!strcasecmp(s, "off")) server->vt_switching = false; + else if (!strcasecmp(s, "on")) + server->vt_switching = true; + } else if (!strcasecmp(s, "scroll_direction")) { + s = strtok(NULL, " \t\n\r"); + if (!strcasecmp(s, "natural")) + server->reverse_scrolling = false; + else if (!strcasecmp(s, "reverse")) + server->reverse_scrolling = true; } } } @@ -346,6 +354,15 @@ void load_config(struct server *server) { FILE *stream; + // remove existing keybindings + struct binding *kb, *tmp; + wl_list_for_each_safe(kb, tmp, &server->mouse_bindings, link) { + free_binding(kb); + } + wl_list_for_each_safe(kb, tmp, &server->key_bindings, link) { + free_binding(kb); + } + // load defaults char *buffer = NULL; size_t size = 0; @@ -359,6 +376,7 @@ // load custom configuration file if (server->config_file) { stream = fopen(server->config_file, "r"); + parse_config(server, stream); fclose(stream); }