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.
|
msg124240 - (view) |
Author: Ned Deily (ned.deily) *  |
Date: 2010-12-17 18:00 |
Thank you very much for the patch. I have updated it and modified it somewhat to work with the latest tip for py3k (3.2b1), 3.1.3+, and 2.7.1+ and to work with both AquaTk Cocoa 8.5 and preserve current behavior with legacy AquaTk Carbon 8.4.
Since there are no automated tests for IDLE in the standard library and since the issues here had to do with differences in menu cascades and options, I created a program to introspect IDLE menus using the OS X GUI Scripting interface via py-appscript. That allowed me to semi-automatically capture the menu configurations for the IDLE configurations of interest (in particular, Apple-supplied Tk vs ActiveState Tk). The following Tcl/Tk configurations - all currently, or shortly to be, supported by python.org installers - were tested:
OS X Tcl/Tk
==== ======
10.6 64-bit ActSt 8.5.9 Cocoa
10.6 64-bit Apple 8.5.7 Cocoa
10.6 32-bit ActSt 8.4.19 Carbon
10.6 32-bit Apple 8.4.19 Carbon
10.5 32-bit ActSt 8.4.19 Carbon
10.5 32-bit Apple 8.4.7 Carbon
10.4 32-bit ActSt 8.4.19 Carbon
10.4 32-bit Apple 8.4.7 Carbon
10.3 32-bit ActSt 8.4.19 Carbon
Each of those Tcl/Tk configurations was tested with both IDLE.app and bin/idle, each with both py3k(3.2b1+) and 2.7.1+ builds, and each of those with both IDLE Editor windows and IDLE shell windows (they have somewhat different menu configurations). Note that testing on 10.3 was much more limited since appscript, and hence the menutester, is not supported there. Also no regressions were noted when applied to 3.1.3+ in a 32-bit only build.
So far, the recently available ActiveState 64-bit Cocoa Tcl/Tk 8.5 has proven to be much more stable than the Apple-supplied 8.5 version in 10.6, which had rendered the 64-bit versions of IDLE virtually unusable up to now. With the final patches applied, I found no regressions in the menu cascades for IDLE.app. When running bin/idle (from the command line), there is a slight difference when using Cocoa Tk vs Carbon Tk. Both variants of AquaTk automatically supplies the application names from the app bundle plist. Because of the way bin/idle is structured today, the app name appears as "Python" rather than "IDLE". With Cocoa Tk, that appears in a couple more menu items ("About app" and "app Help") than it already does with Carbon Tk. While that would be nice to fix at some point, it is an existing cosmetic issue and I assume most inexperienced users will use IDLE.app, where there is no discrepancy.
I believe this fix is ready to be applied and should go into 3.2 (and as soon as possible released for 2.7) in conjunction with building the 64-bit OS X installer to allow use of the ActiveState Cocoa 8.5. This will fix a number of reported problems with the broken IDLE with previous 64-bit OS X installers. Still to be done prior to release is updating the installer README and documenting a few minor issues. A longer-term issue is to make the menu introspection tests automatic enough to be added to the standard tests as an optional OS X test.
|
msg124337 - (view) |
Author: Georg Brandl (georg.brandl) *  |
Date: 2010-12-19 10:11 |
I've committed in the py3k branch as r87394, so that this can get testing during beta, although your list of test systems looks quite exhaustive already. Lowering priority and leaving open for the backports.
|
msg125182 - (view) |
Author: Kevin Walzer (wordtech) * |
Date: 2011-01-03 15:40 |
Ned--thank you for reviewing, testing, and modifying the patch. I applied your revised version to my new install of Python 2.7.1 and it works fine.
|
msg126452 - (view) |
Author: Ned Deily (ned.deily) *  |
Date: 2011-01-18 04:44 |
Backported to 2.7 in r88090 (to appear in 2.7.2).
(I decided to not backport to 3.1 as some prereq backports would be needed and we do not supply a 64-bit OS X installer for 3.1.x anyway.)
|
|
Date |
User |
Action |
Args |
2022-04-11 14:56:49 | admin | set | github: 50325 |
2011-01-18 04:44:49 | ned.deily | set | status: open -> closed
assignee: ronaldoussoren -> ned.deily versions:
- Python 3.1 nosy:
georg.brandl, ronaldoussoren, wordtech, benjamin.peterson, ned.deily messages:
+ msg126452 resolution: fixed stage: patch review -> resolved |
2011-01-03 15:40:00 | wordtech | set | nosy:
georg.brandl, ronaldoussoren, wordtech, benjamin.peterson, ned.deily messages:
+ msg125182 |
2010-12-19 10:11:33 | georg.brandl | set | priority: release blocker -> critical nosy:
georg.brandl, ronaldoussoren, wordtech, benjamin.peterson, ned.deily messages:
+ msg124337
|
2010-12-17 18:01:29 | ned.deily | set | files:
+ issue6075_27.patch nosy:
georg.brandl, ronaldoussoren, wordtech, benjamin.peterson, ned.deily |
2010-12-17 18:01:00 | ned.deily | set | files:
+ issue6075_py3k.patch priority: normal -> release blocker
assignee: ned.deily -> ronaldoussoren
nosy:
+ georg.brandl, benjamin.peterson messages:
+ msg124240 stage: patch review |
2010-12-13 19:32:10 | ned.deily | set | assignee: ned.deily
nosy:
+ ned.deily versions:
+ Python 3.1, Python 2.7, Python 3.2, - Python 2.6 |
2009-10-21 22:08:14 | wordtech | set | messages:
+ msg94328 |
2009-10-11 22:44:06 | wordtech | set | messages:
+ msg93879 |
2009-10-10 18:39:53 | wordtech | set | files:
+ tkcocoa.diff
messages:
+ msg93837 |
2009-10-10 15:55:24 | ronaldoussoren | set | messages:
+ msg93832 |
2009-10-10 04:09:50 | wordtech | set | messages:
+ msg93821 |
2009-09-08 15:39:53 | ronaldoussoren | set | messages:
+ msg92421 |
2009-09-06 21:13:18 | wordtech | set | messages:
+ msg92334 |
2009-09-06 20:58:44 | ronaldoussoren | set | messages:
+ msg92332 |
2009-08-22 21:17:22 | wordtech | set | nosy:
+ ronaldoussoren
|
2009-05-21 14:53:43 | wordtech | set | files:
+ macosxSupport.patch
messages:
+ msg88159 |
2009-05-21 14:53:24 | wordtech | set | files:
- macosxSupport.patch |
2009-05-21 14:51:24 | wordtech | set | files:
+ macosxSupport.patch
messages:
+ msg88158 |
2009-05-21 14:50:11 | wordtech | set | files:
- macosxSupport.patch |
2009-05-21 01:40:36 | kbk | link | issue5232 superseder |
2009-05-21 00:54:20 | wordtech | set | files:
- macosxSupport.patch |
2009-05-21 00:54:10 | wordtech | set | files:
+ macosxSupport.patch
messages:
+ msg88146 |
2009-05-20 22:33:29 | wordtech | set | messages:
+ msg88141 |
2009-05-20 22:26:00 | wordtech | set | files:
+ macosxSupport.patch |
2009-05-20 22:25:44 | wordtech | set | files:
+ Bindings.patch |
2009-05-20 22:25:23 | wordtech | create | |