diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py index 036ff6d069..c2253050d2 100644 --- a/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/gui/window/view_form/screen/screen.py @@ -575,7 +575,7 @@ class Screen(SignalEvent): if self.current_record: self.current_record.cancel() if self.current_record.id < 0: - self.remove() + self.remove(records=[self.current_record]) def save_current(self): if not self.current_record: @@ -657,8 +657,9 @@ class Screen(SignalEvent): for record in records: self.group.unremove(record) - def remove(self, delete=False, remove=False, force_remove=False): - records = self.selected_records + def remove(self, delete=False, remove=False, force_remove=False, + records=None): + records = records or self.selected_records if not records: return if delete: diff --git a/tryton/gui/window/win_form.py b/tryton/gui/window/win_form.py index d61f7d0919..992b67e732 100644 --- a/tryton/gui/window/win_form.py +++ b/tryton/gui/window/win_form.py @@ -411,8 +411,7 @@ class WinForm(NoModal, InfoBar): and response_id in cancel_responses): if (self.screen.current_record.id < 0 or self.save_current): - self.screen.group.remove(self.screen.current_record, - remove=True) + self.screen.cancel_current() elif self.screen.current_record.modified: self.screen.current_record.cancel() self.screen.current_record.reload()