]> granicus.if.org Git - python/commitdiff
Modifying EditorWindow causes breakpoints in that module to be removed
authorKurt B. Kaiser <kbk@shore.net>
Sat, 6 Jul 2002 04:22:25 +0000 (04:22 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Sat, 6 Jul 2002 04:22:25 +0000 (04:22 +0000)
from both sides of the split debugger.
M Debugger.py
M EditorWindow.py

Lib/idlelib/Debugger.py
Lib/idlelib/EditorWindow.py

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