bpo-33610: IDLE's code-context always shows current context immediately (GH-14821)

Eliminate delay of up to 100ms and accompanying visual artifact.
Fix bug of never showing context when hide and show.
This commit is contained in:
Tal Einat 2019-07-18 23:03:18 +03:00 committed by Terry Jan Reedy
parent 323842c279
commit e0a1f8fb5c
3 changed files with 22 additions and 7 deletions

View file

@ -135,7 +135,7 @@ class CodeContextTest(unittest.TestCase):
toggle()
# Toggle on.
eq(toggle(), 'break')
toggle()
self.assertIsNotNone(cc.context)
eq(cc.context['font'], self.text['font'])
eq(cc.context['fg'], self.highlight_cfg['foreground'])
@ -145,11 +145,22 @@ class CodeContextTest(unittest.TestCase):
eq(self.root.tk.call('after', 'info', self.cc.t1)[1], 'timer')
# Toggle off.
eq(toggle(), 'break')
toggle()
self.assertIsNone(cc.context)
eq(cc.editwin.label, 'Show Code Context')
self.assertIsNone(self.cc.t1)
# Scroll down and toggle back on.
line11_context = '\n'.join(x[2] for x in cc.get_context(11)[0])
cc.text.yview(11)
toggle()
eq(cc.context.get('1.0', 'end-1c'), line11_context)
# Toggle off and on again.
toggle()
toggle()
eq(cc.context.get('1.0', 'end-1c'), line11_context)
def test_get_context(self):
eq = self.assertEqual
gc = self.cc.get_context
@ -329,7 +340,7 @@ class CodeContextTest(unittest.TestCase):
eq = self.assertEqual
cc = self.cc
save_font = cc.text['font']
test_font = 'TkFixedFont'
test_font = 'TkTextFont'
# Ensure code context is not active.
if cc.context is not None: