From 191bd7687e73f0b5ea357374b38490cd8dcc07d1 Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Tue, 12 Apr 2011 17:28:13 +0200 Subject: [PATCH] lang: Allow binding properties in kvlang for more than one level of indirection --- kivy/lang.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/kivy/lang.py b/kivy/lang.py index c95805203..d57ab0ccc 100644 --- a/kivy/lang.py +++ b/kivy/lang.py @@ -706,11 +706,14 @@ def create_handler(element, key, value, idmap): # bind every key.value for x in kw: k = x.split('.') - if len(k) != 2: - continue f = idmap[k[0]] - if hasattr(f, 'bind'): - f.bind(**{k[1]: call_fn}) + try: + for x in k[1:-1]: + f = getattr(f, x) + if hasattr(f, 'bind'): + f.bind(**{k[-1]: call_fn}) + except AttributeError: + continue return eval(value, _eval_globals, idmap)