On Wed, Dec 18, 2013 at 04:39:42PM -0500, Dan Espen wrote: > >> Key (Ardour) B W M - > > Idem, that imply the binding was not removed: > >> [fvwm][__execute_function]: <<ERROR>> No such command 'ToggleFail' > > It's pretty clear to me Fvwm doesn't work as expected when you > try to remove a binding with '-'. > During the removal process it should NOT be validating the command > in the binding.
The algorithm when adding a binding is: * Parse the binding and collect info about it in local variables * Collect all bindings that are made obsolete by the new binding in a list. * Ungrab the keys and buttons for the bindings in the remove list. * Delete the remove list. * If the action is just "-" that's all that is to do. * Otherwise append the new binding to the list of all bindings. However, something is going wrong. With key (w1) q w m echo w1 key (w2) q w m echo w2 both bindings work as expected, but after key (w2) q w m - the w1 binding does not work either. It turns out that removing the second binding removes the grab for meta-q on all windows although it is still needed. That does not explain the bug described earlier, though. > > The only way to remove a binding: > >> Key (Ardour) B W M > >> # work > > I don't think that actually works (haven't looked yet). > It might be setting the binding to an empty command. > Empty commands are skipped so they appear not to be there. Looking at the code in ParseBinding, I think fvwm would crash with a NULL pointer access if the action is omitted. Ciao Dominik ^_^ ^_^ -- Dominik Vogt