From 42e2c130acffc2df9e1d9fe19a2b8b10281c3928 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 6 Jun 2014 22:22:36 -0400 Subject: Did half the work to fix Help key handling in Mac OS X. --- delegateuitask_darwin.m | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'delegateuitask_darwin.m') diff --git a/delegateuitask_darwin.m b/delegateuitask_darwin.m index 023cb49..09dcbfd 100644 --- a/delegateuitask_darwin.m +++ b/delegateuitask_darwin.m @@ -35,6 +35,7 @@ #import #import #import +#import extern NSRect dummyRect; @@ -74,6 +75,13 @@ extern NSRect dummyRect; { } +// see below +// TODO is this the correct signature? +- (void)helpbreaker:(NSNotification *)n +{ + [NSHelpManager setContextHelpModeActive:NO]; +} + @end id makeAppDelegate(void) @@ -94,6 +102,14 @@ BOOL initCocoa(id appDelegate) return NO; [NSApp activateIgnoringOtherApps:YES]; // TODO actually do C.NO here? Russ Cox does YES in his devdraw; the docs say the Finder does NO [NSApp setDelegate:appDelegate]; + // by default, Mac OS X intercepts Help key keyDown events + // we treat Help as Insert, so we don't want this behavior + // this will override it; see http://stackoverflow.com/a/4078542/3408572 + // TODO this doesn't send keyDown: + [[NSNotificationCenter defaultCenter] addObserver:appDelegate + selector:@selector(helpbreaker:) + name:NSContextHelpModeDidActivateNotification + object:nil]; return YES; } -- cgit v1.2.3