summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/configDialog.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2016-05-17 02:28:00 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2016-05-17 02:28:00 (GMT)
commitef20cbfb329df66ea2b69373968d49589df988b1 (patch)
tree7e8d39f067cb4d28c56d8e4829594ab1b38918e1 /Lib/idlelib/configDialog.py
parent63063af12e5df22eaafcfd9fc9f41005923961cc (diff)
parent6b98ce23f686b5533ab4bcddfe2c9136565e4919 (diff)
downloadcpython-ef20cbfb329df66ea2b69373968d49589df988b1.zip
cpython-ef20cbfb329df66ea2b69373968d49589df988b1.tar.gz
cpython-ef20cbfb329df66ea2b69373968d49589df988b1.tar.bz2
Merge with 3.5
Diffstat (limited to 'Lib/idlelib/configDialog.py')
-rw-r--r--Lib/idlelib/configDialog.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
index f00db39..b702253 100644
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -483,6 +483,17 @@ class ConfigDialog(Toplevel):
self.autoSave.trace_variable('w', self.VarChanged_autoSave)
self.encoding.trace_variable('w', self.VarChanged_encoding)
+ def remove_var_callbacks(self):
+ "Remove callbacks to prevent memory leaks."
+ for var in (
+ self.fontSize, self.fontName, self.fontBold,
+ self.spaceNum, self.colour, self.builtinTheme,
+ self.customTheme, self.themeIsBuiltin, self.highlightTarget,
+ self.keyBinding, self.builtinKeys, self.customKeys,
+ self.keysAreBuiltin, self.winWidth, self.winHeight,
+ self.startupEdit, self.autoSave, self.encoding,):
+ var.trace_vdelete('w', var.trace_vinfo()[0][1])
+
def VarChanged_font(self, *params):
'''When one font attribute changes, save them all, as they are
not independent from each other. In particular, when we are