[Python-checkins] cpython (3.4): Issue #24972: Inactive selection background now matches active selection

terry.reedy python-checkins at python.org
Mon Sep 28 04:51:50 CEST 2015


https://hg.python.org/cpython/rev/70c01dd35100
changeset:   98343:70c01dd35100
branch:      3.4
parent:      98340:1ae0e02b541d
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Sun Sep 27 22:46:17 2015 -0400
summary:
  Issue #24972: Inactive selection background now matches active selection
background, as selected by user, on all systems.  This also fixes a problem
with found items not highlighted on Windows.  Initial patch by Mark Roseman.
Fix replaces workaround with obscure but proper configuration option.

files:
  Lib/idlelib/EditorWindow.py |  31 +------------------------
  1 files changed, 1 insertions(+), 30 deletions(-)


diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -317,36 +317,6 @@
         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):
         """Return filename as BMP unicode so diplayable in Tk."""
         # Decode bytes to unicode.
@@ -785,6 +755,7 @@
             insertbackground=cursor_color,
             selectforeground=select_colors['foreground'],
             selectbackground=select_colors['background'],
+            inactiveselectbackground=select_colors['background'],
             )
 
     IDENTCHARS = string.ascii_letters + string.digits + "_"

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list