When removing a key table clear it out of clients, fixes issue with

unbind -a reported by Thomas Sattler.
This commit is contained in:
nicm 2017-09-08 08:45:27 +00:00
parent 89e057dc4a
commit 78cf3c14ca

View File

@ -138,12 +138,17 @@ void
key_bindings_remove_table(const char *name) key_bindings_remove_table(const char *name)
{ {
struct key_table *table; struct key_table *table;
struct client *c;
table = key_bindings_get_table(name, 0); table = key_bindings_get_table(name, 0);
if (table != NULL) { if (table != NULL) {
RB_REMOVE(key_tables, &key_tables, table); RB_REMOVE(key_tables, &key_tables, table);
key_bindings_unref_table(table); key_bindings_unref_table(table);
} }
TAILQ_FOREACH(c, &clients, entry) {
if (c->keytable == table)
server_client_set_key_table(c, NULL);
}
} }
void void