X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=EnjoyableApplicationDelegate.m;h=fd70bdc22d69322872e360ab37675356a94b211e;hp=313ba9a2fbf65df4a82e89369a7ceade015b0204;hb=ec81e83cae60debcc9edcc5ef43560b53bb3f986;hpb=6044e47a97de33531c47cd209b30d4405aa0530a diff --git a/EnjoyableApplicationDelegate.m b/EnjoyableApplicationDelegate.m index 313ba9a..fd70bdc 100644 --- a/EnjoyableApplicationDelegate.m +++ b/EnjoyableApplicationDelegate.m @@ -16,8 +16,12 @@ @implementation EnjoyableApplicationDelegate - (void)didSwitchApplication:(NSNotification *)note { - NSRunningApplication *currentApp = note.userInfo[NSWorkspaceApplicationKey]; - [self.mappingsController activateMappingForProcess:currentApp.localizedName]; + NSRunningApplication *activeApp = note.userInfo[NSWorkspaceApplicationKey]; + NSString *name = activeApp.localizedName; + if (!name) + name = activeApp.bundleIdentifier; + if (name && ![name isEqualToString:NSRunningApplication.currentApplication.localizedName]) + [self.mappingsController activateMappingForProcess:name]; } - (void)applicationDidFinishLaunching:(NSNotification *)notification { @@ -89,7 +93,6 @@ item.state = mapping == self.mappingsController.currentMapping; [dockMenuBase addItem:item]; } - [_outputController refreshMappings]; } - (void)mappingDidChange:(NSNotification *)note { @@ -104,4 +107,27 @@ [self.mappingsController activateMapping:chosen]; } +#define OUTPUT_PANE_MIN_WIDTH 390 + +- (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)offset { + return proposedMax - OUTPUT_PANE_MIN_WIDTH; +} + +-(void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize { + NSView *inputView = splitView.subviews[0]; + NSView *outputView = splitView.subviews[1]; + if (outputView.frame.size.width < OUTPUT_PANE_MIN_WIDTH) { + NSSize frameSize = splitView.frame.size; + CGFloat inputWidth = frameSize.width - OUTPUT_PANE_MIN_WIDTH - splitView.dividerThickness; + inputView.frame = NSMakeRect(inputWidth, frameSize.height, + inputView.frame.size.width, + inputView.frame.size.height); + outputView.frame = NSMakeRect(inputWidth + splitView.dividerThickness, + 0, + OUTPUT_PANE_MIN_WIDTH, + frameSize.height); + } else + [splitView adjustSubviews]; +} + @end