diff --git a/Lib/idlelib/TreeWidget.py b/Lib/idlelib/TreeWidget.py index 842f788..8e3a69d 100644 --- a/Lib/idlelib/TreeWidget.py +++ b/Lib/idlelib/TreeWidget.py @@ -67,6 +67,7 @@ class TreeNode: self.children = [] self.x = self.y = None self.iconimages = {} # cache of PhotoImage instances for icons + self.text_id = -1 def destroy(self): for c in self.children[:]: @@ -254,11 +255,11 @@ class TreeNode: self.label.configure(idleConf.GetHighlight(theme, 'hilite')) else: self.label.configure(idleConf.GetHighlight(theme, 'normal')) - id = self.canvas.create_window(textx, texty, - anchor="nw", window=self.label) + if self.text_id == -1 or not self.canvas.find_withtag(self.text_id): + self.text_id = self.canvas.create_window(textx, texty, + anchor="nw", window=self.label) self.label.bind("<1>", self.select_or_edit) self.label.bind("", self.flip) - self.text_id = id def select_or_edit(self, event=None): if self.selected and self.item.IsEditable():