From: Ronald Oussoren Date: Mon, 9 Jul 2007 06:03:47 +0000 (+0000) Subject: Patch 1693258: Fix for duplicate "preferences" menu-OS X X-Git-Tag: v2.5.2c1~250 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=47f29a67e5e909f38db69f598b8dd345ad56934e;p=python Patch 1693258: Fix for duplicate "preferences" menu-OS X Backport of 56204. --- 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_dialog) root.bind('<>', config_dialog) if flist: root.bind('<>', 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', '<>'), + 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.