summaryrefslogtreecommitdiffstats
path: root/osdep/macosx_events.m
diff options
context:
space:
mode:
Diffstat (limited to 'osdep/macosx_events.m')
-rw-r--r--osdep/macosx_events.m29
1 files changed, 19 insertions, 10 deletions
diff --git a/osdep/macosx_events.m b/osdep/macosx_events.m
index 97ef93f405..71a9591134 100644
--- a/osdep/macosx_events.m
+++ b/osdep/macosx_events.m
@@ -45,6 +45,7 @@
- (BOOL)handleMediaKey:(NSEvent *)event;
- (NSEvent *)handleKey:(NSEvent *)event;
+- (void)startEventMonitor;
- (void)startAppleRemote;
- (void)stopAppleRemote;
- (void)startMediaKeys;
@@ -112,6 +113,11 @@ static int convert_key(unsigned key, unsigned charcode)
return charcode;
}
+void cocoa_start_event_monitor(void)
+{
+ [[EventsResponder sharedInstance] startEventMonitor];
+}
+
void cocoa_init_apple_remote(void)
{
[[EventsResponder sharedInstance] startAppleRemote];
@@ -211,16 +217,6 @@ void cocoa_set_input_context(struct input_ctx *input_context)
self = [super init];
if (self) {
_input_ready = [NSCondition new];
-
- [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask|NSKeyUpMask
- handler:^(NSEvent *event) {
- BOOL equivalent = [[NSApp mainMenu] performKeyEquivalent:event];
- if (equivalent) {
- return (NSEvent *)nil;
- } else {
- return [self handleKey:event];
- }
- }];
}
return self;
}
@@ -254,6 +250,19 @@ void cocoa_set_input_context(struct input_ctx *input_context)
return YES;
}
+- (void)startEventMonitor
+{
+ [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask|NSKeyUpMask
+ handler:^(NSEvent *event) {
+ BOOL equivalent = [[NSApp mainMenu] performKeyEquivalent:event];
+ if (equivalent) {
+ return (NSEvent *)nil;
+ } else {
+ return [self handleKey:event];
+ }
+ }];
+}
+
- (void)startAppleRemote
{
dispatch_async(dispatch_get_main_queue(), ^{