Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 889f8bf

Browse files
committed
Modifying EditorWindow causes breakpoints in that module to be removed
from both sides of the split debugger. M Debugger.py M EditorWindow.py
1 parent 491892b commit 889f8bf

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

Lib/idlelib/Debugger.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ def close(self, event=None):
8282
edit_windows = self.pyshell.flist.inversedict.keys()
8383
for window in edit_windows:
8484
window.text.tag_remove("BREAK", 1.0, END)
85+
window.break_set = False
8586
# Clean up pyshell if user clicked debugger control close widget.
8687
# (Causes a harmless extra cycle through close_debugger() if user
8788
# toggled debugger from pyshell Debug menu)
@@ -323,6 +324,7 @@ def set_breakpoint_here(self, edit):
323324
text.bell()
324325
return
325326
text.tag_add("BREAK", "insert linestart", "insert lineend +1char")
327+
edit.break_set = True
326328

327329
def clear_breakpoint_here(self, edit):
328330
text = edit.text
@@ -337,6 +339,7 @@ def clear_breakpoint_here(self, edit):
337339
return
338340
text.tag_remove("BREAK", "insert linestart",\
339341
"insert lineend +1char")
342+
# Don't bother to track break_set status
340343

341344
def clear_file_breaks(self, edit):
342345
text = edit.text
@@ -348,7 +351,8 @@ def clear_file_breaks(self, edit):
348351
if msg:
349352
text.bell()
350353
return
351-
text.tag_delete("BREAK")
354+
text.tag_remove("BREAK", "1.0", END)
355+
edit.break_set = False
352356

353357

354358
class StackViewer(ScrolledList):

Lib/idlelib/EditorWindow.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def __init__(self, flist=None, filename=None, key=None, root=None):
101101
self.top.instanceDict=flist.inversedict
102102
self.recentFilesPath=os.path.join(idleConf.GetUserCfgDir(),
103103
'recent-files.lst')
104+
self.break_set = False
104105
self.vbar = vbar = Scrollbar(top, name='vbar')
105106
self.text_frame = text_frame = Frame(top)
106107
self.text = text = Text(text_frame, name='text', padx=5, wrap=None,
@@ -631,6 +632,9 @@ def saved_change_hook(self):
631632
if not self.get_saved():
632633
title = "*%s*" % title
633634
icon = "*%s" % icon
635+
if self.break_set:
636+
shell = self.flist.pyshell
637+
shell.interp.debugger.clear_file_breaks(self)
634638
self.top.wm_title(title)
635639
self.top.wm_iconname(icon)
636640

@@ -699,8 +703,8 @@ def _close(self):
699703
#print self.io.filename
700704
if self.io.filename:
701705
self.UpdateRecentFilesList(newFile=self.io.filename)
702-
shell = self.flist.pyshell
703-
if shell and shell.interp.debugger:
706+
if self.break_set:
707+
shell = self.flist.pyshell
704708
shell.interp.debugger.clear_file_breaks(self)
705709
WindowList.unregister_callback(self.postwindowsmenu)
706710
if self.close_hook:

0 commit comments

Comments
 (0)