summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoger Serwy <roger.serwy@gmail.com>2013-05-21 03:16:53 (GMT)
committerRoger Serwy <roger.serwy@gmail.com>2013-05-21 03:16:53 (GMT)
commit87ff387254d277b4faa6d4b9efca0a5361837404 (patch)
tree204a6ff70430da1d2d5c00f7a0c3f3b3f38007d4
parent067e48b7d8970210d543af339ce56f64fa629a9a (diff)
parentcaf3024fa662bcbba242013cdecf5d5c2a6092b7 (diff)
downloadcpython-87ff387254d277b4faa6d4b9efca0a5361837404.zip
cpython-87ff387254d277b4faa6d4b9efca0a5361837404.tar.gz
cpython-87ff387254d277b4faa6d4b9efca0a5361837404.tar.bz2
#14146: merge with 3.3.
-rw-r--r--Lib/idlelib/EditorWindow.py30
-rw-r--r--Misc/NEWS2
2 files changed, 32 insertions, 0 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 47cc01b..7255a44 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -340,6 +340,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, str) or not filename:
diff --git a/Misc/NEWS b/Misc/NEWS
index 541a424..acd89e4 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -351,6 +351,8 @@ C-API
IDLE
----
+- Issue #14146: Highlight source line while debugging on Windows.
+
- Issue #17838: Allow sys.stdin to be reassigned.
- Issue #13495: Avoid loading the color delegator twice in IDLE.