gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

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