X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJMappingsController.m;fp=Classes%2FNJMappingsController.m;h=44a9c43e1eb2819e20f050350d9b8de4434907ad;hp=760b41bac53546659cd28f346ef07b318e94cde0;hb=6a7c78afa7b8a34901f59a79afe41d18855734bc;hpb=e7c0b2d96e9e3209b5ba80cc1fdc8e7213cb5302 diff --git a/Classes/NJMappingsController.m b/Classes/NJMappingsController.m index 760b41b..44a9c43 100644 --- a/Classes/NJMappingsController.m +++ b/Classes/NJMappingsController.m @@ -85,20 +85,24 @@ _manualMapping = oldMapping; } +- (void)activateMappingForcibly:(NJMapping *)mapping { + NSLog(@"Switching to mapping %@.", mapping.name); + _currentMapping = mapping; + NSUInteger idx = [self indexOfMapping:_currentMapping]; + [NSNotificationCenter.defaultCenter + postNotificationName:NJEventMappingChanged + object:self + userInfo:@{ NJMappingKey : _currentMapping, + NJMappingIndexKey: @(idx) }]; +} + - (void)activateMapping:(NJMapping *)mapping { if (!mapping) mapping = _manualMapping; if (mapping == _currentMapping) return; - NSLog(@"Switching to mapping %@.", mapping.name); _manualMapping = mapping; - _currentMapping = mapping; - NSUInteger idx = [self indexOfMapping:_currentMapping]; - [NSNotificationCenter.defaultCenter - postNotificationName:NJEventMappingChanged - object:self - userInfo:@{ NJMappingKey : _currentMapping, - NJMappingIndexKey: @(idx) }]; + [self activateMappingForcibly:mapping]; } - (void)save { @@ -139,25 +143,15 @@ - (void)mergeMapping:(NJMapping *)mapping intoMapping:(NJMapping *)existing { [existing mergeEntriesFrom:mapping]; [self mappingsChanged]; - if (existing == _currentMapping) { - // FIXME: Hack to trigger updates in the rest of the UI. - _currentMapping = nil; - NJMapping *manual = _manualMapping; - [self activateMapping:existing]; - _manualMapping = manual; - } + if (existing == _currentMapping) + [self activateMappingForcibly:mapping]; } - (void)renameMapping:(NJMapping *)mapping to:(NSString *)name { mapping.name = name; [self mappingsChanged]; - if (mapping == _currentMapping) { - // FIXME: Hack to trigger updates in the rest of the UI. - _currentMapping = nil; - NJMapping *manual = _manualMapping; - [self activateMapping:mapping]; - _manualMapping = manual; - } + if (mapping == _currentMapping) + [self activateMappingForcibly:mapping]; } - (void)addMapping:(NJMapping *)mapping {