From cf7627be6997641022eed39c8f1e4e53219a89aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 16 Apr 2012 19:16:56 +0200 Subject: [PATCH] Fix set_cursor on editabletree when a popup is raised --- tryton/gui/window/view_form/view/list_gtk/editabletree.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tryton/gui/window/view_form/view/list_gtk/editabletree.py b/tryton/gui/window/view_form/view/list_gtk/editabletree.py index 00ed147198..3a0b2ba47a 100644 --- a/tryton/gui/window/view_form/view/list_gtk/editabletree.py +++ b/tryton/gui/window/view_form/view/list_gtk/editabletree.py @@ -3,6 +3,8 @@ import gtk import parser import gettext +import gobject + from tryton.common.cellrendererbutton import CellRendererButton from tryton.common.cellrenderertoggle import CellRendererToggle @@ -103,7 +105,7 @@ class EditableTreeView(gtk.TreeView): self.grab_focus() if focus_column and (focus_column._type in ('boolean')): start_editing = False - return super(EditableTreeView, self).set_cursor(path, focus_column, + super(EditableTreeView, self).set_cursor(path, focus_column, start_editing) def set_value(self): @@ -153,7 +155,8 @@ class EditableTreeView(gtk.TreeView): def callback(): entry.handler_unblock(entry.editing_done_id) - self.set_cursor(path, column, True) + # Must wait the edited entry came back in valid state + gobject.idle_add(self.set_cursor, path, column, True) self.on_quit_cell(record, column.name, txt, callback=callback) if event.keyval in self.leaving_record_events: fields = self.cells.keys() @@ -220,7 +223,6 @@ class EditableTreeView(gtk.TreeView): else: entry.set_active_text(value) entry.handler_unblock(entry.editing_done_id) - self.set_cursor(path, column, True) self.on_open_remote(record, column.name, create=(event.keyval == gtk.keysyms.F3), value=value, callback=callback)