Browse Source

Merge with 3.5

pull/9921/head
Terry Jan Reedy 10 years ago
parent
commit
ef20cbfb32
  1. 11
      Lib/idlelib/configDialog.py
  2. 1
      Lib/idlelib/idle_test/test_configdialog.py

11
Lib/idlelib/configDialog.py

@ -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

1
Lib/idlelib/idle_test/test_configdialog.py

@ -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()

Loading…
Cancel
Save