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.

Title: In Idle, Mac tabs make editor status line disappear.
Type: enhancement Stage: resolved
Components: IDLE Versions: Python 3.8, Python 3.7, Python 3.6
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: andyharrington, miss-islington, ned.deily, taleinat, terry.reedy, wordtech
Priority: normal Keywords: patch

Created on 2018-10-01 19:36 by andyharrington, last changed 2022-04-11 14:59 by admin. This issue is now closed.

File name Uploaded Description Edit
with tabs.png taleinat, 2018-10-03 14:34
Pull Requests
URL Status Linked Edit
PR 10456 merged terry.reedy, 2018-11-11 02:29
PR 10457 merged miss-islington, 2018-11-11 04:26
PR 10458 merged miss-islington, 2018-11-11 04:26
PR 10464 merged taleinat, 2018-11-11 14:48
PR 11013 merged miss-islington, 2018-12-07 06:32
PR 11014 merged miss-islington, 2018-12-07 06:33
PR 6665 cheryl.sabella, 2018-12-15 04:38
Messages (31)
msg326822 - (view) Author: Andy Harrington (andyharrington) Date: 2018-10-01 19:36
Mac now puts multiple tabs inside of application window instead of starting a separate window (with some OS settings).

With just one file being edited in Idle (no tab line) the bottom line with the numerical cursor coordinates is visible.  When there are multiple tabs (and the tabbing heading therefore) the bottom cursor coordinates are missing.
msg326844 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-10-02 02:30
I do not see this 64-bit 3.7.1rc1 (see #34863) on 10.13.6 with, I believe, default settings.

Are you reporting multiple tabs as a bug, or a feature resulting from intentional settings?  If the latter, this may be something the tcl/tk does not support properly.  Ned and Tal, do either of you know anything about this?

In any case, is the status bar missing, or is the cursor position missing from the status bar.
msg326846 - (view) Author: Andy Harrington (andyharrington) Date: 2018-10-02 03:03
This appears to be a system settings option in Mac OS Sierra set under the
Dock, "prefer tabs when opening documents".  With that choice, when there
is the tab bar  in an Idle edit window (more than one window superimposed,
with tabs) the the whole bottom line with the horizontal separator line
segment disappears:  seems like no allowance is made for the vertical space
taken up by the tab bar at top.  There is a workaround:  turn off this OS
option, but unfortunate to need to do that, and the user has no warning
that it is necessary.  I only noticed this when I switched to a new machine
and was doing initial diddling with the system options, and did not realize
that i was not setting it up as I had it on my previous machine.

Dr. Andrew N. Harrington
  Computer Science Department
  Graduate Program Director
  Loyola University Chicago
  207 Doyle Center, 1052 W Loyola Ave.
Phone: 773-508-3569
Dept. Fax:    773-508-3739 (as professor, not gpd role)

On Mon, Oct 1, 2018 at 9:30 PM Terry J. Reedy <>

> Terry J. Reedy <> added the comment:
> I do not see this 64-bit 3.7.1rc1 (see #34863) on 10.13.6 with, I believe,
> default settings.
> Are you reporting multiple tabs as a bug, or a feature resulting from
> intentional settings?  If the latter, this may be something the tcl/tk does
> not support properly.  Ned and Tal, do either of you know anything about
> this?
> In any case, is the status bar missing, or is the cursor position missing
> from the status bar.
> ----------
> nosy: +ned.deily, taleinat
> _______________________________________
> Python tracker <>
> <>
> _______________________________________
msg326976 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2018-10-03 14:34
Confirmed on macOS High Sierra 10.13.6, with "Prefer tabs when opening documents" set to "Always".

See attached screenshot with the macOS tabs; indeed the bottom bar is missing.
msg326993 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-10-03 17:09
Interesting!  I was not familiar with that system preference nor that it would just (sort of) work in IDLE; I'm presuming that there is nothing in IDLE that knows about this.  I'm not sure whether Tk gets that behavior for free (because of the use of an underlying macOS API) or whether it is intended to be supported behavior.  Or what would need to be done in IDLE to fully support it.  Perhaps Kevin might be able to give some guidance from the Tk perspective.

Ah, I see that if the selected tab is an edit window rather than the IDLE shell window and then one uses the cursor to resize the window (grabbing the bottom right hand corner), the cursor location info reappears and then seems to behave as expected: disappears when selecting the shell tab and reappears when selecting the edit tab.  Further, when opening yet edit window, the cursor info is missing on the new edit tab but still present on the previous edit tab; resizing the window again causes the cursor info to now appear in the newly edit tab.  So all of this seems to be IDLE-specific.
msg326995 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-10-03 17:13
One more time:

"Further, when opening yet edit window" should be "Further, when opening yet another edit tab (in the same IDLE window)"
msg326997 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-10-03 17:55
Optionally converting windows to tabs is an over-arching goal for IDLE.  To do it with IDLE code, IDLE must create a frame (and keep a reference) but not a toplevel.  I presume that  the Mac window manager extracts the window title and frame from the window, discards the window, and puts the title and frame on a tab.  Kevin, does tcl/tk know about or cooperate with this conversion?

IDLE's default editor size is configured as 40 lines of 80 characters.  On my MacBook Air, the windows are actually 38 lines; that is all that fits between the title bar and taskbar. Additional windows overlap, but are moved to the right.  If I set the window height to less than 38, say 30, the initial window does not fill the vertical space, showing some of the background beneath.  Additional windows appear a bit down as well as to the right.

I found the setting under System Preferences Dock and more or less confirm Ned's report.  It appears that the status bar is hidden rather than deleted.  I set the initial window size to 36, 2 lines less than the actual maximum, hoping the status bar would remain in a larger window after opening a second window.  No such luck. The size remains 36, with the bar hidden.  For the editor windows, grabbing the vertical resize made the status appear and stay.  For Shell, it disappeared either immediately or when tabbing away and back.  Since Shell subclasses EditorWindow, I don't know why the difference.

The resolution to this issue from IDLE's viewpoint should be a new IDLE doc subsection 'IDLE on MacOS', probably under 'Help and Preferences'.  It would explain differences from IDLE on Linux and Windows.  Besides this issue, there is the single title bar, menu differences, and zoom behavior (horizontal expansion as well as vertical).  Also, as far as I can tell so far (and someone correct me if this is wrong), only 1 instance of IDLE can run (for a given binary, at least), which means only 1 Shell.  (On Windows, I can run multiple instances of a given binary, and I presume the same is true on non-Mac *nix.)
msg327024 - (view) Author: Kevin Walzer (wordtech) * Date: 2018-10-04 00:38
The behavior outlined in the screenshot is, I believe, a component of the native Cocoa window that underlies Tk; it cannot be controlled or accessed from Tk. It's probably better to avoid altogether or re-implement somehow in IDLE.
msg328797 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2018-10-29 10:16
The search and replace dialogs are also broken by "Prefer tabs when opening documents" being active: they as separate tabs rather than a dialog window.
msg328828 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-10-29 13:45
As part of revising the IDLE Docs, I want to add a section for running on MacOS (issue in preparation, section title undecided).  I already planned on mentioning this setting.  It seems it should be dis-recommended, at least at present.
msg328888 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2018-10-30 09:01
I agree that mentioning that IDLE won't work 100% with that setting on is a good idea.  I also agree that at this point it's not worth the effort to do anything more than that.
msg329659 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-11-11 04:26
New changeset 50ff02b43145f33f8e28ffbfcc6a9d15c4749a64 by Terry Jan Reedy in branch 'master':
bpo-34864: Document two IDLE on MacOS issues. (GH-10456)
msg329660 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-11-11 04:35
Terry, FYI, according to Apple, the correct current styling for the Mac Operating System is "macOS".  We should be using that spelling in the documentation.
msg329661 - (view) Author: miss-islington (miss-islington) Date: 2018-11-11 04:46
New changeset b91c27d89de83ee664e3726e066eb2e424d84bdf by Miss Islington (bot) in branch '3.7':
bpo-34864: Document two IDLE on MacOS issues. (GH-10456)
msg329662 - (view) Author: miss-islington (miss-islington) Date: 2018-11-11 04:49
New changeset a650493a4626c309b34a38919a41f5de32de3721 by Miss Islington (bot) in branch '3.6':
bpo-34864: Document two IDLE on MacOS issues. (GH-10456)
msg329664 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-11-11 05:42
OK, I will change doc references in the next doc patch, or maybe in a patch that also changes module macosx to macos.  (I want to keep it all lowercase.
msg329665 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-11-11 06:01
I don’t think it’s worth changing the file name or other names, that just causes needless churn and the possibility for stranded files on an upgrade. I’d just update the docs and messages.
msg329666 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2018-11-11 06:17
Can we detect whether this system preference is enabled? If so, perhaps
IDLE should display a prominent warning.
msg329675 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2018-11-11 15:15
See PR GH-10464, which warns if "Prefer tabs when opening documents" is set to "Always".
msg329710 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-11-12 04:36
I will leave macosx alone at least until after 3.6.8.  But I plan to merge some modules and want to be able to rename others.  #33906 changed to for 3.7.1 (and 3.6.7).  The 3.7.1 Windows installer deleted; the macOS installer did not.  Tal, do you have a Linux 3.7.1 upgrade of 3.7.0?  What is the downside of the old, dead version?

I could, for the maintenance version, add back a file containing
"# renamed" or "# merged into".  An possible example of the latter is merging into  (I strongly suspect that the split was for a Java-esque one-class per module rule.)  Can modules be made system specific without great hassle?
msg329712 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-11-12 04:50
By default, macOS installers just install the files included in a package.  For macOS Python installer packages, the problem arises if a particular file is deleted or renamed in a maintenance release and a user has already installed an earlier version of that release family.  It's possible for a post-install script to be added to the macOS installer to deal with particular files but that doesn't happen automatically.  On Linux and other OSes, it would depend how the third-party distributor's packaging system works; some would detect a changed or missing file name, some likely wouldn't.  And there's always the possibility that third-party packages or users are using or modifying standard library files.  It's just best to avoid the problem altogether unless there is some really compelling reason.  Of course renames or deletes for the initial release of a feature branch (e.g. 3.8.0) generally aren't a problem.
msg329714 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-11-12 05:07
See #35213 for 'macOS' changes.
msg329717 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-11-12 06:02
Changing only master could make backports difficult to impractical.  (Pure module name changes would be an exception if gits keep track of them and reverses them for a backport.)

If a module is touched, user changes to that module get wiped out when the module is replaced.  Aside from that, most of idlelib was declared private and 'subject to change' to allow refactoring.  The only problem I have heard about is that 3.6 broke IDLEX (as I expected).  IDLEX which made changes far beyond the narrow extension protocol.  Roger solved that by incorporating a private copy of 3.5 IDLE with whatever modifications he wants.  This is exactly what Nick said people should do, in the 3.6 alpha discussion, if they wanted frozen IDLE.
msg331272 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-12-07 06:32
New changeset 9ebe8794f003dadfff578a066ea503a3e37ffe1d by Terry Jan Reedy (Tal Einat) in branch 'master':
bpo-34864: warn if "Prefer tabs when opening documents" set to "Always" (#10464)
msg331274 - (view) Author: miss-islington (miss-islington) Date: 2018-12-07 06:51
New changeset 2db190bb356d00422087e1286637887efb8d97c5 by Miss Islington (bot) in branch '3.7':
bpo-34864: warn if "Prefer tabs when opening documents" set to "Always" (GH-10464)
msg331277 - (view) Author: miss-islington (miss-islington) Date: 2018-12-07 07:03
New changeset 10665544a97b6616898faafc12ac9d06505d0690 by Miss Islington (bot) in branch '3.6':
bpo-34864: warn if "Prefer tabs when opening documents" set to "Always" (GH-10464)
msg331740 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-12-13 04:05
FWIW: I did a quick check of the 3.7.2rc1 IDLE, that now has Tk, with the "prefer tabs" setting on.  The newly added check in IDLE does work as designed but it also looked like the original problem has been fixed in Tk, that is, the co-ordinates did seem to show up in the tabs.  It's probably fine to leave things as they are but I mention it in case anyone wants to revisit this :)
msg331889 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-12-15 04:48
PR 6665, for #33397 (add font resizing to text view and help viewer) got listed because I discovered that increasing and decreasing font size with control wheel/+/- can cause the [close] button to disappear and reappear. (I hope to use FontSizer for editor texts as well, and don't want it to affect the status bar.)  I speculated that there might be some connection to this issue.
msg331933 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-12-16 18:36
Ned, the warning is non-specific as to what might go wrong.  I would not want to remove it until I had tested everything possibly relevant with tabbing set.  And there is still the possibility that people will run IDLE with earlier tk releases.

The #33397 issue of the close button disappearing was solved by packing the close button first.  In the editor, the status bar is already packed into the ListedTopLevel first, before the text frame (perhaps for the same reason).
msg354829 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-10-17 04:56
FTR, Raymond reports in a tweet ( that it is possible to get logged out if you ignore the warning and try to open a file in IDLE when the System Preference is set to always open documents in tabs.  I was able to reproduce with macOS 10.14.6 on real hardware (I didn't see elsewhere).  This is clearly a Tk issue and there has been a lot of work going on in Tk in this area since Tk 8.6.8.  We have been waiting for an official 8.6.10 release to again try to update the built-in Tcl/Tk after the very unsatisfactory experience with 8.6.9; until then still best to heed the warning!
msg354830 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-10-17 04:58
Should be: "I did't *try* elsewhere.", not "see elsewhere".
Date User Action Args
2022-04-11 14:59:06adminsetgithub: 79045
2019-10-17 04:58:11ned.deilysetmessages: + msg354830
2019-10-17 04:56:41ned.deilysetmessages: + msg354829
2018-12-16 18:36:22terry.reedysetmessages: + msg331933
2018-12-15 04:48:42terry.reedysetmessages: + msg331889
2018-12-15 04:38:28cheryl.sabellasetpull_requests: + pull_request10414
2018-12-13 04:06:00ned.deilysetmessages: + msg331740
2018-12-07 07:03:34miss-islingtonsetmessages: + msg331277
2018-12-07 06:51:12miss-islingtonsetmessages: + msg331274
2018-12-07 06:33:06miss-islingtonsetpull_requests: + pull_request10249
2018-12-07 06:32:53miss-islingtonsetpull_requests: + pull_request10248
2018-12-07 06:32:24terry.reedysetmessages: + msg331272
2018-11-12 06:02:28terry.reedysetmessages: + msg329717
2018-11-12 05:07:28terry.reedysetmessages: + msg329714
2018-11-12 04:50:29ned.deilysetmessages: + msg329712
2018-11-12 04:36:46terry.reedysetmessages: + msg329710
2018-11-11 15:15:40taleinatsetmessages: + msg329675
2018-11-11 14:48:44taleinatsetpull_requests: + pull_request9737
2018-11-11 06:17:01taleinatsetmessages: + msg329666
2018-11-11 06:01:06ned.deilysetmessages: + msg329665
2018-11-11 05:42:08terry.reedysetstatus: open -> closed
versions: - Python 2.7
type: behavior -> enhancement
messages: + msg329664

resolution: fixed
stage: patch review -> resolved
2018-11-11 04:49:13miss-islingtonsetmessages: + msg329662
2018-11-11 04:46:15miss-islingtonsetnosy: + miss-islington
messages: + msg329661
2018-11-11 04:35:07ned.deilysetmessages: + msg329660
2018-11-11 04:26:54miss-islingtonsetpull_requests: + pull_request9733
2018-11-11 04:26:45miss-islingtonsetpull_requests: + pull_request9732
2018-11-11 04:26:35terry.reedysetmessages: + msg329659
2018-11-11 02:29:42terry.reedysetkeywords: + patch
stage: patch review
pull_requests: + pull_request9731
2018-10-30 09:02:23taleinatsettype: behavior
2018-10-30 09:02:04taleinatsetversions: + Python 2.7, Python 3.6, Python 3.8
2018-10-30 09:01:32taleinatsetmessages: + msg328888
2018-10-29 13:45:57terry.reedysetmessages: + msg328828
2018-10-29 10:16:46taleinatsetmessages: + msg328797
2018-10-04 00:38:16wordtechsetmessages: + msg327024
2018-10-03 17:55:18terry.reedysettitle: In Idle, Mac tabs make bottom editor line with cursor location disappear -> In Idle, Mac tabs make editor status line disappear.
messages: + msg326997
versions: - Python 3.6, Python 3.8
2018-10-03 17:13:58ned.deilysetmessages: - msg326994
2018-10-03 17:13:48ned.deilysetmessages: + msg326995
2018-10-03 17:10:56ned.deilysetmessages: + msg326994
2018-10-03 17:09:21ned.deilysetnosy: + wordtech

messages: + msg326993
versions: + Python 3.6, Python 3.8
2018-10-03 14:34:45taleinatsetfiles: + with tabs.png

messages: + msg326976
2018-10-02 03:03:28andyharringtonsetmessages: + msg326846
2018-10-02 02:30:26terry.reedysetnosy: + taleinat, ned.deily
messages: + msg326844
2018-10-01 19:36:12andyharringtoncreate