Commit ef20cbfb authored by Terry Jan Reedy's avatar Terry Jan Reedy

Merge with 3.5

parents 63063af1 6b98ce23
...@@ -483,6 +483,17 @@ class ConfigDialog(Toplevel): ...@@ -483,6 +483,17 @@ class ConfigDialog(Toplevel):
self.autoSave.trace_variable('w', self.VarChanged_autoSave) self.autoSave.trace_variable('w', self.VarChanged_autoSave)
self.encoding.trace_variable('w', self.VarChanged_encoding) 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): def VarChanged_font(self, *params):
'''When one font attribute changes, save them all, as they are '''When one font attribute changes, save them all, as they are
not independent from each other. In particular, when we are not independent from each other. In particular, when we are
......
...@@ -25,6 +25,7 @@ class ConfigDialogTest(unittest.TestCase): ...@@ -25,6 +25,7 @@ class ConfigDialogTest(unittest.TestCase):
def test_dialog(self): def test_dialog(self):
d=ConfigDialog(self.root, 'Test', _utest=True) d=ConfigDialog(self.root, 'Test', _utest=True)
d.remove_var_callbacks()
d.destroy() d.destroy()
......
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