Commit 889f8bf2 authored by Kurt B. Kaiser's avatar Kurt B. Kaiser

Modifying EditorWindow causes breakpoints in that module to be removed

from both sides of the split debugger.
M Debugger.py
M EditorWindow.py
parent 491892b2
...@@ -82,6 +82,7 @@ class Debugger: ...@@ -82,6 +82,7 @@ class Debugger:
edit_windows = self.pyshell.flist.inversedict.keys() edit_windows = self.pyshell.flist.inversedict.keys()
for window in edit_windows: for window in edit_windows:
window.text.tag_remove("BREAK", 1.0, END) window.text.tag_remove("BREAK", 1.0, END)
window.break_set = False
# Clean up pyshell if user clicked debugger control close widget. # Clean up pyshell if user clicked debugger control close widget.
# (Causes a harmless extra cycle through close_debugger() if user # (Causes a harmless extra cycle through close_debugger() if user
# toggled debugger from pyshell Debug menu) # toggled debugger from pyshell Debug menu)
...@@ -323,6 +324,7 @@ class Debugger: ...@@ -323,6 +324,7 @@ class Debugger:
text.bell() text.bell()
return return
text.tag_add("BREAK", "insert linestart", "insert lineend +1char") text.tag_add("BREAK", "insert linestart", "insert lineend +1char")
edit.break_set = True
def clear_breakpoint_here(self, edit): def clear_breakpoint_here(self, edit):
text = edit.text text = edit.text
...@@ -337,6 +339,7 @@ class Debugger: ...@@ -337,6 +339,7 @@ class Debugger:
return return
text.tag_remove("BREAK", "insert linestart",\ text.tag_remove("BREAK", "insert linestart",\
"insert lineend +1char") "insert lineend +1char")
# Don't bother to track break_set status
def clear_file_breaks(self, edit): def clear_file_breaks(self, edit):
text = edit.text text = edit.text
...@@ -348,7 +351,8 @@ class Debugger: ...@@ -348,7 +351,8 @@ class Debugger:
if msg: if msg:
text.bell() text.bell()
return return
text.tag_delete("BREAK") text.tag_remove("BREAK", "1.0", END)
edit.break_set = False
class StackViewer(ScrolledList): class StackViewer(ScrolledList):
......
...@@ -101,6 +101,7 @@ class EditorWindow: ...@@ -101,6 +101,7 @@ class EditorWindow:
self.top.instanceDict=flist.inversedict self.top.instanceDict=flist.inversedict
self.recentFilesPath=os.path.join(idleConf.GetUserCfgDir(), self.recentFilesPath=os.path.join(idleConf.GetUserCfgDir(),
'recent-files.lst') 'recent-files.lst')
self.break_set = False
self.vbar = vbar = Scrollbar(top, name='vbar') self.vbar = vbar = Scrollbar(top, name='vbar')
self.text_frame = text_frame = Frame(top) self.text_frame = text_frame = Frame(top)
self.text = text = Text(text_frame, name='text', padx=5, wrap=None, self.text = text = Text(text_frame, name='text', padx=5, wrap=None,
...@@ -631,6 +632,9 @@ class EditorWindow: ...@@ -631,6 +632,9 @@ class EditorWindow:
if not self.get_saved(): if not self.get_saved():
title = "*%s*" % title title = "*%s*" % title
icon = "*%s" % icon icon = "*%s" % icon
if self.break_set:
shell = self.flist.pyshell
shell.interp.debugger.clear_file_breaks(self)
self.top.wm_title(title) self.top.wm_title(title)
self.top.wm_iconname(icon) self.top.wm_iconname(icon)
...@@ -699,8 +703,8 @@ class EditorWindow: ...@@ -699,8 +703,8 @@ class EditorWindow:
#print self.io.filename #print self.io.filename
if self.io.filename: if self.io.filename:
self.UpdateRecentFilesList(newFile=self.io.filename) self.UpdateRecentFilesList(newFile=self.io.filename)
shell = self.flist.pyshell if self.break_set:
if shell and shell.interp.debugger: shell = self.flist.pyshell
shell.interp.debugger.clear_file_breaks(self) shell.interp.debugger.clear_file_breaks(self)
WindowList.unregister_callback(self.postwindowsmenu) WindowList.unregister_callback(self.postwindowsmenu)
if self.close_hook: if self.close_hook:
......
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