Commit 4947e278 authored by Guido van Rossum's avatar Guido van Rossum

Add calls to self.protocol("WM_DELETE_WINDOW", self.destroy) to the Tk

and Toplevel class constructors.  This means that if the window
manager closes the window, the Python-side Tkinter data structures
will be destroyed correctly.  (Most apps do this anyway, and it's
recommended practice; I see no reason why making it the default
behavior could be bad.)
parent 7637da6c
...@@ -910,6 +910,7 @@ class Tk(Misc, Wm): ...@@ -910,6 +910,7 @@ class Tk(Misc, Wm):
self.readprofile(baseName, className) self.readprofile(baseName, className)
if _support_default_root and not _default_root: if _support_default_root and not _default_root:
_default_root = self _default_root = self
self.protocol("WM_DELETE_WINDOW", self.destroy)
def destroy(self): def destroy(self):
for c in self.children.values(): c.destroy() for c in self.children.values(): c.destroy()
self.tk.call('destroy', self._w) self.tk.call('destroy', self._w)
...@@ -1119,6 +1120,7 @@ class Toplevel(BaseWidget, Wm): ...@@ -1119,6 +1120,7 @@ class Toplevel(BaseWidget, Wm):
root = self._root() root = self._root()
self.iconname(root.iconname()) self.iconname(root.iconname())
self.title(root.title()) self.title(root.title())
self.protocol("WM_DELETE_WINDOW", self.destroy)
class Button(Widget): class Button(Widget):
def __init__(self, master=None, cnf={}, **kw): def __init__(self, master=None, cnf={}, **kw):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment