]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#14146: Highlight source line while debugging on Windows.
authorRoger Serwy <roger.serwy@gmail.com>
Tue, 21 May 2013 03:13:39 +0000 (22:13 -0500)
committerRoger Serwy <roger.serwy@gmail.com>
Tue, 21 May 2013 03:13:39 +0000 (22:13 -0500)
Lib/idlelib/EditorWindow.py
Misc/NEWS

index cf3fad3c1ec183c276ba5ad4c9e5936e11f2264f..38cbfcfc559269c4519d2be7f84c1a7be99f2e86 100644 (file)
@@ -346,6 +346,36 @@ class EditorWindow(object):
         self.askinteger = tkSimpleDialog.askinteger
         self.showerror = tkMessageBox.showerror
 
+        self._highlight_workaround()  # Fix selection tags on Windows
+
+    def _highlight_workaround(self):
+        # On Windows, Tk removes painting of the selection
+        # tags which is different behavior than on Linux and Mac.
+        # See issue14146 for more information.
+        if not sys.platform.startswith('win'):
+            return
+
+        text = self.text
+        text.event_add("<<Highlight-FocusOut>>", "<FocusOut>")
+        text.event_add("<<Highlight-FocusIn>>", "<FocusIn>")
+        def highlight_fix(focus):
+            sel_range = text.tag_ranges("sel")
+            if sel_range:
+                if focus == 'out':
+                    HILITE_CONFIG = idleConf.GetHighlight(
+                            idleConf.CurrentTheme(), 'hilite')
+                    text.tag_config("sel_fix", HILITE_CONFIG)
+                    text.tag_raise("sel_fix")
+                    text.tag_add("sel_fix", *sel_range)
+                elif focus == 'in':
+                    text.tag_remove("sel_fix", "1.0", "end")
+
+        text.bind("<<Highlight-FocusOut>>",
+                lambda ev: highlight_fix("out"))
+        text.bind("<<Highlight-FocusIn>>",
+                lambda ev: highlight_fix("in"))
+
+
     def _filename_to_unicode(self, filename):
         """convert filename to unicode in order to display it in Tk"""
         if isinstance(filename, unicode) or not filename:
index cb7fd6006e3f2bbb5d3cfe525386167e5a1fa937..b2485eff3e607dcd6e2c45e57cb8260b2fc0146f 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,12 @@ Library
 
 - Fix typos in the multiprocessing module.
 
+IDLE
+----
+
+- Issue #14146: Highlight source line while debugging on Windows.
+
+
 Tests
 -----