X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fconf-bindings.c;h=d745a0996806c96525c7e8b8c8b4cd6e778f494b;hb=720e6978185b09f2b2f60a6b96018238085a7238;hp=e39b81101e0708236c86e0b3ba459314b6cb06d1;hpb=8366314611bf30a0f31d25bf5f5023186fa87692;p=ion3.git diff --git a/ioncore/conf-bindings.c b/ioncore/conf-bindings.c index e39b811..d745a09 100644 --- a/ioncore/conf-bindings.c +++ b/ioncore/conf-bindings.c @@ -1,12 +1,9 @@ /* * ion/ioncore/conf-bindings.c * - * Copyright (c) Tuomo Valkonen 1999-2006. + * Copyright (c) Tuomo Valkonen 1999-2007. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #include @@ -188,7 +185,7 @@ static bool do_action(WBindmap *bindmap, const char *str, binding.func=func; if(bindmap_remove_binding(bindmap, &binding)) return TRUE; - warn(TR("Unable to remove binding %s."), str); + /*warn(TR("Unable to remove binding %s."), str);*/ } return FALSE; @@ -199,12 +196,13 @@ static bool do_submap(WBindmap *bindmap, const char *str, ExtlTab subtab, uint action, uint mod, uint ksb) { WBinding binding, *bnd; - uint kcb; + uint kcb=0; if(action!=BINDING_KEYPRESS) return FALSE; kcb=XKeysymToKeycode(ioncore_g.dpy, ksb); + bnd=bindmap_lookup_binding(bindmap, action, mod, kcb); if(bnd!=NULL && bnd->submap!=NULL && bnd->state==mod) @@ -239,6 +237,9 @@ static StringIntMap action_map[]={ {"mclick", BINDING_BUTTONCLICK}, {"mdblclick", BINDING_BUTTONDBLCLICK}, {"mdrag", BINDING_BUTTONMOTION}, + {"submap_enter", BINDING_SUBMAP_ENTER}, + {"submap_wait", BINDING_SUBMAP_RELEASEMOD}, + /*{"submap_leave", BINDING_SUBMAP_LEAVE},*/ {NULL, 0} }; @@ -271,14 +272,16 @@ static bool do_entry(WBindmap *bindmap, ExtlTab tab, goto fail; } } + + if(!BINDING_IS_PSEUDO(action)){ + if(!extl_table_gets_s(tab, "kcb", &ksb_str)) + goto fail; - if(!extl_table_gets_s(tab, "kcb", &ksb_str)) - goto fail; - - if(!ioncore_parse_keybut(ksb_str, &mod, &ksb, - (action!=BINDING_KEYPRESS && action!=-1), - init_any)){ - goto fail; + if(!ioncore_parse_keybut(ksb_str, &mod, &ksb, + (action!=BINDING_KEYPRESS && action!=-1), + init_any)){ + goto fail; + } } if(extl_table_gets_t(tab, "submap", &subtab)){