diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2012-08-08 10:56:04 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2012-08-08 10:56:04 (GMT) |
commit | fc4f66609d70b5e360ed06d1b0be0e54c0b5cac9 (patch) | |
tree | 1e832456672c8f3df4fbfe96b51e7d9c06f73427 /macosx/tkMacOSXMenu.c | |
parent | 57697b5b22a5851bca41ba3ec058f1de355ba5dc (diff) | |
parent | 14cd8c272352eb6d51553f92ac67cf695304c56c (diff) | |
download | tk-fc4f66609d70b5e360ed06d1b0be0e54c0b5cac9.zip tk-fc4f66609d70b5e360ed06d1b0be0e54c0b5cac9.tar.gz tk-fc4f66609d70b5e360ed06d1b0be0e54c0b5cac9.tar.bz2 |
merge trunk
Diffstat (limited to 'macosx/tkMacOSXMenu.c')
-rw-r--r-- | macosx/tkMacOSXMenu.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/macosx/tkMacOSXMenu.c b/macosx/tkMacOSXMenu.c index d6f9ef1..8054c57 100644 --- a/macosx/tkMacOSXMenu.c +++ b/macosx/tkMacOSXMenu.c @@ -669,20 +669,25 @@ TkpConfigureMenuEntry( submenu = nil; } else { [submenu setTitle:title]; + + if ([menuItem isEnabled]) { + /* This menuItem might have been previously disabled (XXX: + track this), which would have disabled entries; we must + re-enable the entries here. */ + int i = 0; + NSArray *itemArray = [submenu itemArray]; + for (NSMenuItem *item in itemArray) { + TkMenuEntry *submePtr = menuRefPtr->menuPtr->entries[i]; + [item setEnabled: !(submePtr->state == ENTRY_DISABLED)]; + i++; + } + } + } } } [menuItem setSubmenu:submenu]; - /*Disabling parent menu disables entries; we must re-enable the entries here.*/ - NSArray *itemArray = [submenu itemArray]; - - if ([menuItem isEnabled]) { - for (NSMenuItem *item in itemArray) { - [item setEnabled:YES]; - } - } - return TCL_OK; } |