classification
Title: IDLE: Search dialogs can be hidden behind the main window
Type: behavior Stage: resolved
Components: IDLE Versions: Python 3.9, Python 3.8, Python 3.7, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: IrvKalb, miss-islington, taleinat, terry.reedy
Priority: normal Keywords: patch

Created on 2019-06-06 16:21 by taleinat, last changed 2019-06-08 15:27 by terry.reedy. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 13869 merged taleinat, 2019-06-06 16:26
PR 13878 merged miss-islington, 2019-06-07 05:55
PR 13879 merged miss-islington, 2019-06-07 05:55
PR 13880 merged taleinat, 2019-06-07 06:08
Messages (9)
msg344831 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-06-06 16:21
This issue was brought up by Irv Kalb on the idle-dev mailing list.

I haven't been able to reproduce it exactly as he described, but I have managed to do so otherwise, and remember it happening on occasion on other computers.

This appears to happen because the dialog windows are not being made transient relative to the main window. I'll have a PR up with a fix in a bit.


Following is what Irv Kalb sent to the mailing list:

I teach Python classes using IDLE.  The search dialog is a real a problem for new students and me as the teacher.  My students and I often get into a scenario where the search dialog gets hidden behind a editing window.  When that happens, then you try to make edits in code and nothing happens.  This happens to very often.  I have learned to look for the hidden search dialog window, but my students get very flustered.


Simple steps to reproduce (I'm using Python 3.6.1 with IDLE):

	Open a new document.

	Enter any code (e.g., a = 1)

	Bring up the Search Dialog.

	If the Search Dialog is not over the rectangle of the editing window, move it anywhere over the editing window.
        (This step is specifically to reproduce the problem, but this happens very often as students move windows around.)

	Search for: a        

	Click: Find Next

	Click in the editing window (with the intention to make some change)

Results:

	Search Dialog is now hidden behind the editing window.  
        Keystrokes are now ignored in the editing window, even though the editing window appears to have focus.
	User has no idea about how to get out of this situation - unless they have seen it before and know that the Search Dialog is still active behind the current window.
msg344832 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-06-06 16:26
See proposed fix in GH-13869.
msg344898 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-06-07 05:54
New changeset 554450fb4e95066e825bdb4a2d544a490daeebdc by Tal Einat in branch 'master':
bpo-37177: make IDLE's search dialogs transient (GH-13869)
https://github.com/python/cpython/commit/554450fb4e95066e825bdb4a2d544a490daeebdc
msg344899 - (view) Author: miss-islington (miss-islington) Date: 2019-06-07 06:17
New changeset 295fe32e393280464feef7c6fb616ea2d1e73e37 by Miss Islington (bot) in branch '3.8':
bpo-37177: make IDLE's search dialogs transient (GH-13869)
https://github.com/python/cpython/commit/295fe32e393280464feef7c6fb616ea2d1e73e37
msg344900 - (view) Author: miss-islington (miss-islington) Date: 2019-06-07 06:37
New changeset 685b806549cc956aeeb3a57fe15ee5a4d1704aed by Miss Islington (bot) in branch '3.7':
bpo-37177: make IDLE's search dialogs transient (GH-13869)
https://github.com/python/cpython/commit/685b806549cc956aeeb3a57fe15ee5a4d1704aed
msg344902 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-06-07 06:53
New changeset 1b57ab5c6478b93cf4150bd8c475022252776598 by Tal Einat in branch '2.7':
[2.7] bpo-37177: make IDLE's search dialogs transient (GH-13869)
https://github.com/python/cpython/commit/1b57ab5c6478b93cf4150bd8c475022252776598
msg344913 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-06-07 09:16
Irv's steps did not work for me either, on Windows, and I do not know how else to reproduce.  So I cannot test that this fixes any hiding issue.  However, the patch fixes #24039.  On Windows, it removes the inoperative minimize button and the unwanted maximize buttom, making the search dialog work like all the other IDLE dialogs I checked.
msg345035 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-06-08 13:17
The issue Irv reported happened on macOS but not on Windows. I've reproduced his issue without this fix, and checked that this fix does indeed fix his issue.

For future reference, Irv also posted a video showing his issue on YouTube[1] (he sent a link to idle-dev).

[1] http://www.youtube.com/watch?v=YWDsOEN8qsE
msg345051 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-06-08 15:27
I saw the email, thanks for testing.

Irv, a reminder: All reports of IDLE UI behavior (and some of internal behavior) need to be tagged with OS.  Working 'cross-platform' does not mean 'the same across platforms'.  In particular, tcl/tk long ago made a decision to adjust to platform conventions (which have sometimes changed ;-).  I should have asked 'what OS' when I saw your report.
History
Date User Action Args
2019-06-08 15:27:31terry.reedysetmessages: + msg345051
2019-06-08 13:17:26taleinatsetmessages: + msg345035
2019-06-07 16:30:38SilentGhostlinkissue37197 superseder
2019-06-07 14:32:24taleinatsetpull_requests: - pull_request13768
2019-06-07 14:26:10t-visetpull_requests: + pull_request13768
2019-06-07 09:16:20terry.reedysetmessages: + msg344913
2019-06-07 06:53:57taleinatsetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2019-06-07 06:53:08taleinatsetmessages: + msg344902
2019-06-07 06:37:35miss-islingtonsetmessages: + msg344900
2019-06-07 06:17:16miss-islingtonsetnosy: + miss-islington
messages: + msg344899
2019-06-07 06:08:17taleinatsetpull_requests: + pull_request13758
2019-06-07 05:55:11miss-islingtonsetpull_requests: + pull_request13757
2019-06-07 05:55:04miss-islingtonsetpull_requests: + pull_request13756
2019-06-07 05:54:43taleinatsetmessages: + msg344898
2019-06-06 17:40:08taleinatsetnosy: + IrvKalb
2019-06-06 16:26:36taleinatsetmessages: + msg344832
2019-06-06 16:26:01taleinatsetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request13745
2019-06-06 16:22:35taleinatsetstage: needs patch
type: behavior
versions: + Python 2.7, Python 3.7, Python 3.8, Python 3.9
2019-06-06 16:21:59taleinatcreate