electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 45a0c3b53b58dd54b1118e7379521bc6acc72052
parent 49fb099bdc98fbf411631697002561c0a73662e5
Author: ThomasV <thomasv@electrum.org>
Date:   Thu,  4 Feb 2016 20:02:45 +0100

kivy: i18n needs garbage collection

Diffstat:
Mgui/kivy/i18n.py | 20++++++++++++++++++--
Mgui/kivy/main.kv | 2+-
2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/gui/kivy/i18n.py b/gui/kivy/i18n.py @@ -18,8 +18,24 @@ class _(str): return _.lang(s).format(args, kwargs) @staticmethod - def bind(label): - _.observers.add(label) + def bind(label, arg): + if not isinstance(label.text, _): + return + if label.bound: + return + try: + _.observers.add(label) + except: + pass + label.bound = True + # garbage collection + new = set() + for label in _.observers: + try: + new.add(label) + except: + pass + _.observers = new @staticmethod def switch_lang(lang): diff --git a/gui/kivy/main.kv b/gui/kivy/main.kv @@ -13,7 +13,7 @@ font_name: 'Roboto' font_size: '16sp' bound: False - on_text: if isinstance(self.text, _) and not self.bound: self.bound = True; _.bind(self) + on_text: _.bind(self, args[1]) <TextInput> on_focus: app._focused_widget = root