X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fconf-bindings.c;h=c449a87cdbf740f3e4a69e1b80cca6dd9810d8ab;hb=ae4260bb64817c11f9a7140324cd3e3ba113e297;hp=e39b81101e0708236c86e0b3ba459314b6cb06d1;hpb=8366314611bf30a0f31d25bf5f5023186fa87692;p=ion3.git diff --git a/ioncore/conf-bindings.c b/ioncore/conf-bindings.c index e39b811..c449a87 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 @@ -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)){