From: Roger Serwy Date: Tue, 21 May 2013 03:13:39 +0000 (-0500) Subject: #14146: Highlight source line while debugging on Windows. X-Git-Tag: v2.7.6rc1~383 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02c0ed06123d62dcf4c686e0f5bc48bac55676cc;p=thirdparty%2FPython%2Fcpython.git #14146: Highlight source line while debugging on Windows. --- diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index cf3fad3c1ec1..38cbfcfc5592 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -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("<>", "") + text.event_add("<>", "") + 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("<>", + lambda ev: highlight_fix("out")) + text.bind("<>", + 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: diff --git a/Misc/NEWS b/Misc/NEWS index cb7fd6006e3f..b2485eff3e60 100644 --- 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 -----