trytond-patches/issue13181002_1.diff

58 lines
2.5 KiB
Diff

diff -r a2294b0ec2e8 tryton/tryton/common/popup_menu.py
--- a/tryton/tryton/common/popup_menu.py Wed May 11 10:42:28 2016 +0200
+++ b/tryton/tryton/common/popup_menu.py Mon May 30 15:16:30 2016 +0200
@@ -12,7 +12,7 @@
_ = gettext.gettext
-def populate(menu, model, record, title='', field=None):
+def populate(menu, model, record, title='', field=None, parent_screen=None):
'''
Fill menu with the actions of model for the record.
If title is filled, the actions will be put in a submenu.
@@ -38,6 +38,8 @@
return record
def activate(menuitem, action, atype):
+ if parent_screen:
+ parent_screen.save_tree_state()
rec = load(record)
action = Action.evaluate(action, atype, rec)
data = {
diff -r a2294b0ec2e8 tryton/tryton/gui/window/view_form/view/list.py
--- a/tryton/tryton/gui/window/view_form/view/list.py Wed May 11 10:42:28 2016 +0200
+++ b/tryton/tryton/gui/window/view_form/view/list.py Mon May 30 15:16:30 2016 +0200
@@ -872,7 +872,7 @@
menu = gtk.Menu()
menu.popup(None, None, None, event.button, event.time)
- def pop(menu, group, record):
+ def pop(menu, group, record, screen):
copy_item = gtk.ImageMenuItem('gtk-copy')
copy_item.connect('activate', lambda x: self.on_copy())
menu.append(copy_item)
@@ -886,7 +886,8 @@
break
parent = parent.parent
else:
- populate(menu, group.model_name, record)
+ populate(menu, group.model_name, record,
+ parent_screen=screen)
for col in self.treeview.get_columns():
if not col.get_visible() or not col.name:
continue
@@ -903,10 +904,11 @@
if not model:
continue
label = field.attrs['string']
- populate(menu, model, record_id, title=label, field=field)
+ populate(menu, model, record_id, title=label, field=field,
+ parent_screen=screen)
menu.show_all()
# Delay filling of popup as it can take time
- gobject.idle_add(pop, menu, group, record)
+ gobject.idle_add(pop, menu, group, record, self.screen)
elif event.button == 2:
event.button = 1
event.state |= gtk.gdk.MOD1_MASK