diff options
author | Ronald Oussoren <ronaldoussoren@mac.com> | 2007-07-09 06:03:47 +0000 |
---|---|---|
committer | Ronald Oussoren <ronaldoussoren@mac.com> | 2007-07-09 06:03:47 +0000 |
commit | 47f29a67e5e909f38db69f598b8dd345ad56934e (patch) | |
tree | b9faa94249cf6fdd8de6580d29b573502ebe5a65 /Lib/idlelib/macosxSupport.py | |
parent | 43f1f68b7cfdea82c5eb76d017f26f5a93931cd5 (diff) | |
download | cpython-git-47f29a67e5e909f38db69f598b8dd345ad56934e.tar.gz |
Patch 1693258: Fix for duplicate "preferences" menu-OS X
Backport of 56204.
Diffstat (limited to 'Lib/idlelib/macosxSupport.py')
-rw-r--r-- | Lib/idlelib/macosxSupport.py | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/Lib/idlelib/macosxSupport.py b/Lib/idlelib/macosxSupport.py index 47da0c6023..222abfce75 100644 --- a/Lib/idlelib/macosxSupport.py +++ b/Lib/idlelib/macosxSupport.py @@ -80,32 +80,40 @@ def overrideRootMenu(root, flist): import configDialog configDialog.ConfigDialog(root, 'Settings') + root.bind('<<about-idle>>', about_dialog) root.bind('<<open-config-dialog>>', config_dialog) if flist: root.bind('<<close-all-windows>>', flist.close_all_callback) - for mname, entrylist in Bindings.menudefs: - menu = menudict.get(mname) - if not menu: - continue - for entry in entrylist: - if not entry: - menu.add_separator() + + ###check if Tk version >= 8.4.14; if so, use hard-coded showprefs binding + tkversion = root.tk.eval('info patchlevel') + if tkversion >= '8.4.14': + Bindings.menudefs[0] = ('application', [ + ('About IDLE', '<<about-idle>>'), + None, + ]) + root.createcommand('::tk::mac::ShowPreferences', config_dialog) + else: + for mname, entrylist in Bindings.menudefs: + menu = menudict.get(mname) + if not menu: + continue else: - label, eventname = entry - underline, label = prepstr(label) - accelerator = get_accelerator(Bindings.default_keydefs, + for entry in entrylist: + if not entry: + menu.add_separator() + else: + label, eventname = entry + underline, label = prepstr(label) + accelerator = get_accelerator(Bindings.default_keydefs, eventname) - def command(text=root, eventname=eventname): - text.event_generate(eventname) - menu.add_command(label=label, underline=underline, + def command(text=root, eventname=eventname): + text.event_generate(eventname) + menu.add_command(label=label, underline=underline, command=command, accelerator=accelerator) - - - - def setupApp(root, flist): """ Perform setup for the OSX application bundle. |