X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJMappingsController.m;h=2ee423905cde287893e165ada1e395d00ce25312;hp=ea8137f8465e8c781b9402b53294cf293d6d31e3;hb=7e5568674713bedf9318e83b9fb13abbd122382c;hpb=0d00fc387704e00e29c5c64669b32eb7a58ed03d diff --git a/Classes/NJMappingsController.m b/Classes/NJMappingsController.m index ea8137f..2ee4239 100644 --- a/Classes/NJMappingsController.m +++ b/Classes/NJMappingsController.m @@ -65,19 +65,27 @@ count:len]; } -- (void)activateMappingForProcess:(NSString *)processName { - if ([manualMapping.name.lowercaseString isEqualToString:@"@application"]) { - manualMapping.name = processName; - [self mappingsChanged]; - } else { - NJMapping *oldMapping = manualMapping; - NJMapping *newMapping = self[processName]; - if (!newMapping) - newMapping = oldMapping; - if (newMapping != _currentMapping) - [self activateMapping:newMapping]; - manualMapping = oldMapping; +- (void)activateMappingForProcess:(NSRunningApplication *)app { + NJMapping *oldMapping = manualMapping; + NSArray *names = app.possibleMappingNames; + BOOL found = NO; + for (NSString *name in names) { + NJMapping *mapping = self[name]; + if (mapping) { + [self activateMapping:self[name]]; + found = YES; + break; + } + } + + if (!found) { + [self activateMapping:oldMapping]; + if ([oldMapping.name.lowercaseString isEqualToString:@"@application"]) { + oldMapping.name = app.bestMappingName; + [self mappingsChanged]; + } } + manualMapping = oldMapping; } - (void)updateInterfaceForCurrentMapping {