On enter and leave set value only for focused widget

Other widgets could be in a not valid state but we don't want to force to
resolve them on such event.
This commit is contained in:
Cédric Krier committed 2012-09-24 16:45:58 +02:00
1 parent c274a39333
commit 36a18758c4
2 files changed
+6 -4

No files matched your search

+5 -3
View File
@@ -74,14 +74,16 @@ class ViewForm(ParserView):
for widget in widgets:
widget.cancel()
def set_value(self):
def set_value(self, focused_widget=False):
record = self.screen.current_record
if record:
for name, widgets in self.widgets.iteritems():
if name in record.group.fields:
field = record.group.fields[name]
for widget in widgets:
widget.set_value(record, field)
if (not focused_widget
or widget.widget.get_focus_child()):
widget.set_value(record, field)
def sel_ids_get(self):
if self.screen.current_record:
@@ -167,7 +169,7 @@ class ViewForm(ParserView):
def leave(self, widget, event):
# leave could be called during event process
gobject.idle_add(self.set_value)
gobject.idle_add(self.set_value, True)
def button_clicked(self, widget):
record = self.screen.current_record
@@ -166,7 +166,7 @@ class WidgetInterface(object):
def enter(self, widget, event):
if self.view:
self.view.set_value()
self.view.set_value(focused_widget=True)
class TranslateDialog(NoModal):