classification
Title: Patch for IDLE/OS X to work with Tk-Cocoa
Type: behavior Stage:
Components: IDLE Versions: Python 2.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: ronaldoussoren, wordtech (2)
Priority: Keywords patch

Created on 2009-05-20 22:25 by wordtech, last changed 2009-10-21 22:08 by wordtech.

Files
File name Uploaded Description Edit Remove
EditorWindow.patch wordtech, 2009-05-20 22:25
Bindings.patch wordtech, 2009-05-20 22:25
macosxSupport.patch wordtech, 2009-05-21 14:53
tkcocoa.diff wordtech, 2009-10-10 18:39
Messages (13)
msg88139 - (view) Author: Kevin Walzer (wordtech) Date: 2009-05-20 22:25
In version 8.6 of Tk (now in beta stage), Tk on OS X will be built on top 
of the Cocoa API, replacing the deprecated Carbon API. Tk-Cocoa implements 
some UI behaviors (help menu, application menu) differently than Tk-
Carbon. The attached files patch IDLE to detect whether Tk is built on top 
of Cocoa or Carbon, and implement the correct UI behavior.
msg88141 - (view) Author: Kevin Walzer (wordtech) Date: 2009-05-20 22:33
These patches were tested on Python/IDLE 2.6.2 and Tk version 8.5.7. My 
build of Tk, which runs on top of Cocoa, is based on a fork of Tk hosted 
at http://github.com/das/tcltk/tree/de-carbon-8-5. Tk-Cocoa will become 
the main line for Mac OS X in Tk 8.6, now in beta. I have not tested these 
patches with a standard build of Tk-Carbon, but the patches default to the 
current IDLE behavior if Tk-Cocoa is not detected.
msg88146 - (view) Author: Kevin Walzer (wordtech) Date: 2009-05-21 00:54
This updated patch of macosxSupport.py adds a fix that addresses the 
preferences dialog, see http://bugs.python.org/issue5232.
msg88158 - (view) Author: Kevin Walzer (wordtech) Date: 2009-05-21 14:51
additional refinement to help_dialog command, makes menu consistent
msg88159 - (view) Author: Kevin Walzer (wordtech) Date: 2009-05-21 14:53
typo in macosxSupport.patch--fixed
msg92332 - (view) Author: Ronald Oussoren (ronaldoussoren) Date: 2009-09-06 20:58
The patches look acceptable on first glance.

Which configurations of Tk have you tested? IMHO IDLE should work with the 
following configurations:

* Tk.framework as supplied with OSX 10.4, 10.5 and 10.6

* The current releases of Tk 8.4 and 8.5 installed in /Library/Frameworks

* Tk-Cocoa
msg92334 - (view) Author: Kevin Walzer (wordtech) Date: 2009-09-06 21:13
Tested against Tk-Cocoa (the build of Tk-8.5 that comes with Snow Leopard; 
I also have my own build on Leopard) and Tk-Carbon 8.5 on Leopard/10.5, 
and it works as expected. I no longer have any builds of 8.4 to test 
against. The code defaults to the current behavior of Tk-Carbon if a Cocoa 
build is not detected.
msg92421 - (view) Author: Ronald Oussoren (ronaldoussoren) Date: 2009-09-08 15:39
I'm about to test the patches on a 10.4 system with Tk 8.4 and will report 
back with the results.

These patches might be useful to issue 6864, that issue says IDLE blocks 
on 10.6 and that problem seems to be fixed in python-trunk + Kevin's 
patches (although I haven't tested the trunk without these patches).
msg93821 - (view) Author: Kevin Walzer (wordtech) Date: 2009-10-10 04:09
I've run into an additional problem with these patches. While they 
correctly set up the menus for Python Shell and editor windows, when a 
front-most window is closed, the menubar suddenly displays duplicate 
entries (for Edit, Run, and Help) at the end of the menubar, not all of 
which work correctly. Subsequent closing of other windows causes more 
duplication of menu entries. I have looked at every line of these patches, 
as well as some additional points in idlelib, and I cannot find what is 
causing the issue. As a result, I don't know where to fix it. If others 
are able to reproduce this bug after applying the patches and can find 
where the problem is occurring, suggestions (or a fix) are welcome.
msg93832 - (view) Author: Ronald Oussoren (ronaldoussoren) Date: 2009-10-10 15:55
I have tried to apply the patches to python's trunk, but they don't apply 
cleanly at all.

Could you please rework the patches into a single larger patch that 
applies to the trunk.
msg93837 - (view) Author: Kevin Walzer (wordtech) Date: 2009-10-10 18:39
Single revised diff, "tkcocoa.diff", attached, applied against Python 
trunk. Have not tested against Python trunk, nor do I believe it solves 
the issue with the extra menu items appearing when a window is closed. But 
hopefully this will apply more cleanly.
msg93879 - (view) Author: Kevin Walzer (wordtech) Date: 2009-10-11 22:44
Re: msg 93821, the comment about redundant entries being appended to a 
menu when an EditorWindow is destroyed:

I've reproduced this behavior in Tk-Cocoa itself, and have concluded it's 
not an issue with IDLE (or my patches). I've filed bug 
https://sourceforge.net/tracker/?
func=detail&atid=112997&aid=2876709&group_id=12997 at SF to address this.
msg94328 - (view) Author: Kevin Walzer (wordtech) Date: 2009-10-21 22:08
Apparently the extra menu entries are related to an Appkit bug on Leopard 
that Tk-Cocoa picks up; the bug is not present on Snow Leopard and won't 
be fixed on Leopard. As a result, I've closed the SF bug.
History
Date User Action Args
2009-10-21 22:08:14wordtechsetmessages: + msg94328
2009-10-11 22:44:06wordtechsetmessages: + msg93879
2009-10-10 18:39:53wordtechsetfiles: + tkcocoa.diff

messages: + msg93837
2009-10-10 15:55:24ronaldoussorensetmessages: + msg93832
2009-10-10 04:09:50wordtechsetmessages: + msg93821
2009-09-08 15:39:53ronaldoussorensetmessages: + msg92421
2009-09-06 21:13:18wordtechsetmessages: + msg92334
2009-09-06 20:58:44ronaldoussorensetmessages: + msg92332
2009-08-22 21:17:22wordtechsetnosy: + ronaldoussoren
2009-05-21 14:53:43wordtechsetfiles: + macosxSupport.patch

messages: + msg88159
2009-05-21 14:53:24wordtechsetfiles: - macosxSupport.patch
2009-05-21 14:51:24wordtechsetfiles: + macosxSupport.patch

messages: + msg88158
2009-05-21 14:50:11wordtechsetfiles: - macosxSupport.patch
2009-05-21 01:40:36kbklinkissue5232 superseder
2009-05-21 00:54:20wordtechsetfiles: - macosxSupport.patch
2009-05-21 00:54:10wordtechsetfiles: + macosxSupport.patch

messages: + msg88146
2009-05-20 22:33:29wordtechsetmessages: + msg88141
2009-05-20 22:26:00wordtechsetfiles: + macosxSupport.patch
2009-05-20 22:25:44wordtechsetfiles: + Bindings.patch
2009-05-20 22:25:23wordtechcreate