]> git.sur5r.net Git - i3/i3/blobdiff - src/bindings.c
Reset B_UPON_KEYRELEASE_IGNORE_MODS bindings when switching modes
[i3/i3] / src / bindings.c
index 38002396b42232eea640024e2b0f9fbafe844db7..228f7a9dcf064e94275c60245f78c0a2dbd4c228 100644 (file)
@@ -649,6 +649,14 @@ void switch_mode(const char *new_mode) {
         translate_keysyms();
         grab_all_keys(conn);
 
+        /* Reset all B_UPON_KEYRELEASE_IGNORE_MODS bindings to avoid possibly
+         * activating one of them. */
+        Binding *bind;
+        TAILQ_FOREACH(bind, bindings, bindings) {
+            if (bind->release == B_UPON_KEYRELEASE_IGNORE_MODS)
+                bind->release = B_UPON_KEYRELEASE;
+        }
+
         char *event_msg;
         sasprintf(&event_msg, "{\"change\":\"%s\", \"pango_markup\":%s}",
                   mode->name, (mode->pango_markup ? "true" : "false"));