diff --git a/MMApplication.h b/MMApplication.h new file mode 100644 index 0000000000..fcae57fc35 --- /dev/null +++ b/MMApplication.h @@ -0,0 +1,18 @@ +/* vi:set ts=8 sts=4 sw=4 ft=objc: + * + * VIM - Vi IMproved by Bram Moolenaar + * MacVim GUI port by Bjorn Winckler + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * See README.txt for an overview of the Vim source code. + */ + +#import +#import "MacVim.h" + + +@interface MMApplication : NSApplication { +} + +@end diff --git a/MMApplication.m b/MMApplication.m new file mode 100644 index 0000000000..3a9723a477 --- /dev/null +++ b/MMApplication.m @@ -0,0 +1,45 @@ +/* vi:set ts=8 sts=4 sw=4 ft=objc: + * + * VIM - Vi IMproved by Bram Moolenaar + * MacVim GUI port by Bjorn Winckler + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * See README.txt for an overview of the Vim source code. + */ + +#import "MMApplication.h" + + + + +@implementation MMApplication + +- (void)sendEvent:(NSEvent *)event +{ + NSEventType type = [event type]; + unsigned flags = [event modifierFlags]; + + // HACK! Intercept 'help' key presses and clear the 'help key flag', else + // Cocoa turns the mouse cursor into a question mark and goes into 'context + // help mode' (the keyDown: event itself never reaches the text view). By + // clearing the 'help key flag' this event will be treated like a normal + // key event. + if ((NSKeyDown == type || NSKeyUp == type) && (flags & NSHelpKeyMask)) { + flags &= ~NSHelpKeyMask; + event = [NSEvent keyEventWithType:[event type] + location:[event locationInWindow] + modifierFlags:flags + timestamp:[event timestamp] + windowNumber:[event windowNumber] + context:[event context] + characters:[event characters] + charactersIgnoringModifiers:[event charactersIgnoringModifiers] + isARepeat:[event isARepeat] + keyCode:[event keyCode]]; + } + + [super sendEvent:event]; +} + +@end