summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/client_api_examples/cocoa/cocoabasic.m16
-rw-r--r--video/out/cocoa_common.m4
2 files changed, 14 insertions, 6 deletions
diff --git a/DOCS/client_api_examples/cocoa/cocoabasic.m b/DOCS/client_api_examples/cocoa/cocoabasic.m
index 80656815ca..f2d9059afe 100644
--- a/DOCS/client_api_examples/cocoa/cocoabasic.m
+++ b/DOCS/client_api_examples/cocoa/cocoabasic.m
@@ -33,6 +33,7 @@ static inline void check_error(int status)
mpv_handle *mpv;
dispatch_queue_t queue;
NSWindow *w;
+ NSView *wrapper;
}
@end
@@ -55,6 +56,12 @@ static void wakeup(void *);
[self->w makeMainWindow];
[self->w makeKeyAndOrderFront:nil];
+ NSRect frame = [[self->w contentView] bounds];
+ self->wrapper = [[NSView alloc] initWithFrame:frame];
+ [self->wrapper setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+ [[self->w contentView] addSubview:self->wrapper];
+ [self->wrapper release];
+
NSMenu *m = [[NSMenu alloc] initWithTitle:@"AMainMenu"];
NSMenuItem *item = [m addItemWithTitle:@"Apple" action:nil keyEquivalent:@""];
NSMenu *sm = [[NSMenu alloc] initWithTitle:@"Apple"];
@@ -95,7 +102,7 @@ static void wakeup(void *);
exit(1);
}
- int64_t wid = (intptr_t) [self->w contentView];
+ int64_t wid = (intptr_t) self->wrapper;
check_error(mpv_set_option(mpv, "wid", MPV_FORMAT_INT64, &wid));
// Maybe set some options here, like default key bindings.
@@ -138,7 +145,12 @@ static void wakeup(void *);
case MPV_EVENT_VIDEO_RECONFIG: {
dispatch_async(dispatch_get_main_queue(), ^{
- [self->w selectNextKeyView:nil];
+ NSArray *subviews = [self->wrapper subviews];
+ if ([subviews count] > 0) {
+ // mpv's events view
+ NSView *eview = [self->wrapper subviews][0];
+ [self->w makeFirstResponder:eview];
+ }
});
}
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index 8d1e0ef653..4e3c461eaa 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -380,10 +380,6 @@ static void create_ui(struct vo *vo, struct mp_rect *win, int geo_flags)
s->view = view;
[parent addSubview:s->view];
- // insert ourselves as the next key view so that clients can give key
- // focus to the mpv view by calling -[NSWindow selectNextKeyView:]
- [parent setNextKeyView:s->view];
-
#if HAVE_COCOA_APPLICATION
cocoa_register_menu_item_action(MPM_H_SIZE, @selector(halfSize));
cocoa_register_menu_item_action(MPM_N_SIZE, @selector(normalSize));