diff -r dfcb64f51f7b -r 3fdd418be9f8 Lib/tkinter/__init__.py --- a/Lib/tkinter/__init__.py Wed Jun 05 12:20:24 2013 +0200 +++ b/Lib/tkinter/__init__.py Wed Jun 05 14:19:24 2013 +0200 @@ -3299,6 +3299,7 @@ class Image: """Base class for images.""" + TclError = TclError # neede for proper destruction _last_id = 0 def __init__(self, imgtype, name=None, cnf={}, master=None, **kw): self.name = None @@ -3327,7 +3328,9 @@ if self.name: try: self.tk.call('image', 'delete', self.name) - except TclError: + # This destructor may be called while the global TclError has + # already been deleted, so we keep our own reference to it. + except self.TclError: # May happen if the root was destroyed pass def __setitem__(self, key, value): diff -r dfcb64f51f7b -r 3fdd418be9f8 Lib/turtledemo/__main__.py --- a/Lib/turtledemo/__main__.py Wed Jun 05 12:20:24 2013 +0200 +++ b/Lib/turtledemo/__main__.py Wed Jun 05 14:19:24 2013 +0200 @@ -57,14 +57,14 @@ ################# self.left_frame = left_frame = Frame(root) self.text_frame = text_frame = Frame(left_frame) - self.vbar = vbar =Scrollbar(text_frame, name='vbar') + self.vbar = vbar = Scrollbar(text_frame, name='vbar') self.text = text = Text(text_frame, name='text', padx=5, wrap='none', width=45) vbar['command'] = text.yview vbar.pack(side=LEFT, fill=Y) ##################### - self.hbar = hbar =Scrollbar(text_frame, name='hbar', orient=HORIZONTAL) + self.hbar = hbar = Scrollbar(text_frame, name='hbar', orient=HORIZONTAL) hbar['command'] = text.xview hbar.pack(side=BOTTOM, fill=X) ##################### @@ -80,6 +80,8 @@ text_frame.pack(side=LEFT, fill=BOTH, expand=0) left_frame.pack(side=LEFT, fill=BOTH, expand=0) self.graph_frame = g_frame = Frame(root) + g_frame.grid_columnconfigure(0, weight=1) + g_frame.grid_rowconfigure(0, weight=1) turtle._Screen._root = g_frame turtle._Screen._canvas = turtle.ScrolledCanvas(g_frame, 800, 600, 1000, 800) @@ -92,7 +94,7 @@ #xturtle.RawTurtle.canvases = [self.scanvas] turtle.RawTurtle.screens = [_s_] - self.scanvas.pack(side=TOP, fill=BOTH, expand=1) + self.scanvas.grid(row=0, column=0, sticky='news') self.btn_frame = btn_frame = Frame(g_frame, height=100) self.start_btn = Button(btn_frame, text=" START ", font=btnfont, fg = "white", @@ -105,7 +107,7 @@ disabledforeground = "#fed", command = self.clearCanvas) self.clear_btn.pack(side=LEFT, fill=X, expand=1) - self.btn_frame.pack(side=TOP, fill=BOTH, expand=0) + self.btn_frame.grid(row=1, column=0, sticky='ew') self.graph_frame.pack(side=TOP, fill=BOTH, expand=1) Percolator(text).insertfilter(ColorDelegator())