From 329dc9aef1c43cbf4c4dff6e86ff8eb39419900c Mon Sep 17 00:00:00 2001 From: ericwa Date: Sat, 24 Apr 2010 00:03:30 +0000 Subject: [PATCH] gui: fix bug 29635 NSMenuItem -initWithCoder: should set modifier mask to 0 if NSKeyEquivModMask not defined git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30229 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/NSMenuItem.m | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8ed79a622..16f159324 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-04-23 Eric Wasylishen + + * Source/NSMenuItem.m: Fix for bug 29635 + (NSMenuItem -initWithCoder: should set modifier mask to 0 if + NSKeyEquivModMask not defined) + 2010-04-23 Jonathan Gillaspie * Source/NSWindowController.m: Fixed a problem where controller marks diff --git a/Source/NSMenuItem.m b/Source/NSMenuItem.m index 8dfd62884..47d791ae1 100644 --- a/Source/NSMenuItem.m +++ b/Source/NSMenuItem.m @@ -566,6 +566,7 @@ static Class imageClass; NSString *action; NSString *key; BOOL isSeparator = NO; + int keyMask; if ([aDecoder containsValueForKey: @"NSIsSeparator"]) { @@ -617,11 +618,12 @@ static Class imageClass; NSMenu *submenu = [aDecoder decodeObjectForKey: @"NSSubmenu"]; [self setSubmenu: submenu]; } - if ([aDecoder containsValueForKey: @"NSKeyEquivModMask"]) - { - int keyMask = [aDecoder decodeIntForKey: @"NSKeyEquivModMask"]; - [self setKeyEquivalentModifierMask: keyMask]; - } + + // Set the key mask regardless of whether it is present; + // i.e. set it to 0 if it is not present in the nib. + keyMask = [aDecoder decodeIntForKey: @"NSKeyEquivModMask"]; + [self setKeyEquivalentModifierMask: keyMask]; + if ([aDecoder containsValueForKey: @"NSMnemonicLoc"]) { int loc = [aDecoder decodeIntForKey: @"NSMnemonicLoc"];