From 03a69bac95ce4e15016138104cd198a6a60c38cd Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 28 Feb 2015 14:50:06 +0100 Subject: cocoa: remove the setNextKeyView hack Just use makeFirstResponder on the mpv events view from client code if you need the built in keyboard events (this is easier for dealing with view nesting). --- DOCS/client_api_examples/cocoa/cocoabasic.m | 16 ++++++++++++++-- video/out/cocoa_common.m | 4 ---- 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)); -- cgit v1.2.3