Please review this at http://codereview.appspot.com/183144
Affected files:
M tryton/gui/window/view_form/view/form_gtk/textbox.py
Index: tryton/gui/window/view_form/view/form_gtk/textbox.py
===================================================================
--- a/tryton/gui/window/view_form/view/form_gtk/textbox.py
+++ b/tryton/gui/window/view_form/view/form_gtk/textbox.py
@@ -35,6 +35,7 @@
self.scrolledwindow.show_all()
self.widget.pack_start(self.scrolledwindow)
+ self.lang = None
def grab_focus(self):
return self.textview.grab_focus()
@@ -52,22 +53,26 @@
spell = gtkspell.get_from_text_view(self.textview)
except:
pass
- if spell:
- spell.detach()
- del spell
+
if not value and self.attrs.get('spell') \
and CONFIG['client.spellcheck'] \
and self._view and self._view.model:
language = self._view.model.expr_eval(self.attrs['spell'])
try:
- spell = gtkspell.Spell(self.textview)
- try:
- spell.set_language(language)
- except:
- spell.detach()
- del spell
+ if not spell:
+ spell = gtkspell.Spell(self.textview)
+ if self.lang != language:
+ try:
+ spell.set_language(language)
+ except:
+ spell.detach()
+ del spell
+ self.lang = language
except:
pass
+ elif spell:
+ spell.detach()
+ del spell
def _color_widget(self):
return self.textview
@@ -95,22 +100,25 @@
spell = gtkspell.get_from_text_view(self.textview)
except:
pass
- if spell:
- spell.detach()
- del spell
if self.attrs.get('spell') and CONFIG['client.spellcheck'] \
and self._view and self._view.model:
language = self._view.model.expr_eval(self.attrs['spell'])
try:
- spell = gtkspell.Spell(self.textview)
- try:
- spell.set_language(language)
- except:
- spell.detach()
- del spell
+ if not spell:
+ spell = gtkspell.Spell(self.textview)
+ if self.lang != language:
+ try:
+ spell.set_language(language)
+ except:
+ spell.detach()
+ del spell
+ self.lang = language
except:
pass
+ elif spell:
+ spell.detach()
+ del spell
def display_value(self):
lines = (self._view.modelfield.get_client(self._view.model)
or '').split('\n')
--
Cédric Krier
B2CK SPRL
Rue de Rotterdam, 4
4000 Liège
Belgium
Tel: +32 472 54 46 59
Email: [email protected]
Jabber: [email protected]
Website: http://www.b2ck.com/
twitter: http://twitter.com/cedrickrier
identi.ca: http://identi.ca/cedrickrier
pgp6nNrxmoUWa.pgp
Description: PGP signature
