changeset 2a7fa16f706f in tryton:5.8
details: https://hg.tryton.org/tryton?cmd=changeset&node=2a7fa16f706f
description:
Do not clear model if the selection is still the same
Clearing the model reset the scroll position of the ScrolledWindow
which is
unnecessary if the content is still the same.
issue10121
review339981002
(grafted from 5fe718640116041b10a132b2a10ab72f31ffbbe4)
diffstat:
tryton/gui/window/view_form/view/form_gtk/multiselection.py | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diffs (21 lines):
diff -r 79afd031b9a6 -r 2a7fa16f706f
tryton/gui/window/view_form/view/form_gtk/multiselection.py
--- a/tryton/gui/window/view_form/view/form_gtk/multiselection.py Wed Mar
03 18:12:25 2021 +0100
+++ b/tryton/gui/window/view_form/view/form_gtk/multiselection.py Mon Mar
01 23:30:23 2021 +0100
@@ -77,12 +77,15 @@
# it will be set back in the super call
selection.set_select_function(lambda *a: True)
self.update_selection(self.record, self.field)
- self.model.clear()
+ new_model = self.selection != [list(row) for row in self.model]
+ if new_model:
+ self.model.clear()
if not self.field:
return
value2path = {}
for idx, (value, name) in enumerate(self.selection):
- self.model.append((value, name))
+ if new_model:
+ self.model.append((value, name))
value2path[value] = idx
selection.unselect_all()
values = self.field.get_eval(self.record)