From 85d06d32cb4f888878536a0887edaa27fb8d0d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 25 Oct 2016 23:13:35 +0200 Subject: [PATCH] Use cancel_record instead of removing from group cancel_record uses Screen.remove which ensure the cursor is correctly set after the removal. This also ensure that cancel_record remove only the current record. issue5852 review34331002 --- tryton/gui/window/view_form/screen/screen.py | 7 ++++--- tryton/gui/window/win_form.py | 3 +-- 2 files changed, 5 insertions(+), 5 deletions(-) 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()