diff options
author | Roger Serwy <roger.serwy@gmail.com> | 2013-05-21 03:16:53 (GMT) |
---|---|---|
committer | Roger Serwy <roger.serwy@gmail.com> | 2013-05-21 03:16:53 (GMT) |
commit | 87ff387254d277b4faa6d4b9efca0a5361837404 (patch) | |
tree | 204a6ff70430da1d2d5c00f7a0c3f3b3f38007d4 | |
parent | 067e48b7d8970210d543af339ce56f64fa629a9a (diff) | |
parent | caf3024fa662bcbba242013cdecf5d5c2a6092b7 (diff) | |
download | cpython-87ff387254d277b4faa6d4b9efca0a5361837404.zip cpython-87ff387254d277b4faa6d4b9efca0a5361837404.tar.gz cpython-87ff387254d277b4faa6d4b9efca0a5361837404.tar.bz2 |
#14146: merge with 3.3.
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 30 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
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: @@ -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. |