@@ -198,6 +198,8 @@ def on_include(self, event):
198198
199199
200200class _CanBeRenamed (object ):
201+ _node = None
202+ _old_label = None
201203
202204 def on_rename (self , event ):
203205 __ = event
@@ -206,13 +208,15 @@ def on_rename(self, event):
206208 def begin_label_edit (self ):
207209 def label_edit ():
208210 # DEBUG: fixme yep.yep.yep.yep.yep
209- node = self ._tree .controller .find_node_by_controller (self .controller )
210- if node :
211- self ._tree .EditLabel (node )
211+ self ._node = self ._tree .controller .find_node_by_controller (self .controller )
212+ if self ._node :
213+ self ._old_label = self ._tree .GetItemText (self ._node )
214+ self ._tree .EditLabel (self ._node )
212215 # Must handle pending events before label edit
213216 # This is a fix for situations where there is a pending action
214217 # that will change this label (Text Editor all changing actions)
215- wx .CallAfter (label_edit )
218+ # wx.CallAfter(label_edit)
219+ label_edit ()
216220 return True
217221
218222 def end_label_edit (self , event ):
@@ -221,6 +225,11 @@ def end_label_edit(self, event):
221225 self .rename (event .GetLabel ())
222226 else :
223227 event .Veto ()
228+ else :
229+ self ._set_node_label (self ._old_label )
230+
231+ def _set_node_label (self , label ):
232+ self ._tree .SetItemText (self ._node , label )
224233
225234 def _is_valid_rename (self , label ):
226235 validation = self .controller .validate_name (label )
0 commit comments