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:
1 parent
c274a39333
commit
36a18758c4
2 files changed
+6
-4
No files matched your search
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user