Previously, a calltip might be left after SyntaxError, KeyboardInterrupt, or Shell Restart.
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Co-authored-by: Tal Einat <taleinat+github@gmail.com>
(cherry picked from commit
bfdeaa37b3df7466624c17f9450d2bd1c3d95edf)
Co-authored-by: Zackery Spytz <zspytz@gmail.com>
======================================
+bpo-38792: Close a shell calltip if a :exc:`KeyboardInterrupt`
+or shell restart occurs. Patch by Zackery Spytz.
+
bpo-30780: Add remaining configdialog tests for buttons and
highlights and keys tabs.
# See __init__ for usage
return calltip_w.CalltipWindow(self.text)
- def _remove_calltip_window(self, event=None):
+ def remove_calltip_window(self, event=None):
if self.active_calltip:
self.active_calltip.hidetip()
self.active_calltip = None
self.open_calltip(False)
def open_calltip(self, evalfuncs):
- self._remove_calltip_window()
+ self.remove_calltip_window()
hp = HyperParser(self.editwin, "insert")
sur_paren = hp.get_surrounding_brackets('(')
text.bind("<<run-module>>", scriptbinding.run_module_event)
text.bind("<<run-custom>>", scriptbinding.run_custom_event)
text.bind("<<do-rstrip>>", self.Rstrip(self).do_rstrip)
- ctip = self.Calltip(self)
+ self.ctip = ctip = self.Calltip(self)
text.bind("<<try-open-calltip>>", ctip.try_open_calltip_event)
#refresh-calltip must come after paren-closed to work right
text.bind("<<refresh-calltip>>", ctip.refresh_calltip_event)
self.text.insert("end-1c", "\n")
self.text.mark_set("iomark", "end-1c")
self.set_line_and_column()
+ self.ctip.remove_calltip_window()
def write(self, s, tags=()):
try:
--- /dev/null
+Close an IDLE shell calltip if a :exc:`KeyboardInterrupt`
+or shell restart occurs. Patch by Zackery Spytz.