This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: IDLE: revisit text highlighting for inactive windows on win32
Type: behavior Stage: resolved
Components: IDLE Versions: Python 3.6, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: Rich.Rauenzahn, Todd.Rovito, dzabel, loewis, markroseman, python-dev, roger.serwy, terry.reedy
Priority: normal Keywords: patch

Created on 2015-08-31 18:54 by markroseman, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
inactiveselection.patch markroseman, 2015-09-07 18:43 review
Messages (8)
msg249422 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-31 18:54
This is a followup to #14146

I don't think this is actually a Tk bug. The text widget supports an "inactiveselectbackground" option which controls the background color of the selection when the window is not active. On Win32, this is defined as empty (i.e. no highlighting).

This option is new in Tk 8.5. I don't believe that Tk 8.4 displayed the selection differently for active and inactive windows, hence why the problem never showed up until 8.5. 

It seems that if running 8.5, setting this widget option to the desired color would then remove the need for the _highlight_workaround() in EditorWindow.py.  

Can someone else besides me try this out please?
msg249807 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-09-04 18:34
Rather than copying the nosy list from an old issue, which likely contains people no longer interested, better to announce a followup on the old issue.

I am not sure what you want me to try out.  If it is a code change, please upload a patch.  If it is a user action, please specify.
msg250122 - (view) Author: Mark Roseman (markroseman) * Date: 2015-09-07 18:43
See inactiveselection.patch. This addresses the original bug of the debugger not highlighting the correct line, and also various issues with the find windows not highlighting the selection they have found, e.g. #22179, #18590
msg251679 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-09-27 03:30
I verified that inactiveselectbackground exists and starts as ''.  Since it should match the active selectbackground on all systems, as set by the current theme. I will try adding a line where selection colors are set: EditorWindow.ResetColorizer:
        self.text.config(
            ...
            selectforeground=select_colors['foreground'],
            selectbackground=select_colors['background'],
            inactiveselectbackground=select_colors['background']
            )
I believe this is the only place where this is needed.  The select colors are used for a different widget in TreeWidget. The use in ParenMatch for 'paren' tag should be temporary.

We will need to reconsider the 'found' highlight and the select versus found usage after this change.
msg251745 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-09-28 02:51
New changeset 4b3356f1a261 by Terry Jan Reedy in branch '2.7':
Issue #24972: Inactive selection background now matches active selection
https://hg.python.org/cpython/rev/4b3356f1a261

New changeset 70c01dd35100 by Terry Jan Reedy in branch '3.4':
Issue #24972: Inactive selection background now matches active selection
https://hg.python.org/cpython/rev/70c01dd35100
msg251747 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-09-28 03:25
I first testing the workaround by selecting text and then clicking on another window, and the highlight stayed.  I commented out "self._highlight_workaround()", quit, started again, tested again, and the highlight disappeared.  I added the new line above, retested, and the hightlight stayed.

Debugger source highlighting again does not work for me on Win7 in any installed or repository version, before or after the patch. See #25254. The patch does immediately fix at least part of the find issue. I will review them later.

While the report above implies that I committed to 3.4 and merged forward, there is a screw-up in the repository that prevented merging, so I backed out the 3.4 patch before pushing.  So only 2.7 is patched and this issue is not done.
msg251754 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-09-28 08:17
New changeset 2445750029df by Terry Jan Reedy in branch '3.4':
Issue #24972: Inactive selection background now matches active selection
https://hg.python.org/cpython/rev/2445750029df
msg251755 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-09-28 08:53
New changeset 45955adc2ed2 by Terry Jan Reedy in branch '2.7':
Issue #24972: New option is only valid in tk 8.5+.
https://hg.python.org/cpython/rev/45955adc2ed2

New changeset 460e6e6fb09a by Terry Jan Reedy in branch '3.4':
Issue #24972: New option is only valid in tk 8.5+.
https://hg.python.org/cpython/rev/460e6e6fb09a
History
Date User Action Args
2022-04-11 14:58:20adminsetgithub: 69160
2015-09-28 08:53:31python-devsetmessages: + msg251755
2015-09-28 08:19:34terry.reedysetstatus: open -> closed
assignee: terry.reedy
type: behavior
resolution: fixed
stage: resolved
2015-09-28 08:17:14python-devsetmessages: + msg251754
2015-09-28 03:25:15terry.reedysetmessages: + msg251747
2015-09-28 02:51:52python-devsetnosy: + python-dev
messages: + msg251745
2015-09-27 03:30:24terry.reedysetmessages: + msg251679
2015-09-07 18:43:01markrosemansetfiles: + inactiveselection.patch
keywords: + patch
messages: + msg250122
2015-09-04 18:34:35terry.reedysetmessages: + msg249807
2015-08-31 18:54:21markrosemancreate