summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2015-02-28 14:50:06 +0100
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>2015-03-03 16:05:24 +0900
commitc6c4c3ea9c122ddd0223d0afaa739d54ecad7384 (patch)
treed8d77efd2d77204cf157ffb2045084a502c92d96
parent8e5a8543746d350fb1300efb634ca83b5bc80f8b (diff)
downloadmpv-c6c4c3ea9c122ddd0223d0afaa739d54ecad7384.tar.bz2
mpv-c6c4c3ea9c122ddd0223d0afaa739d54ecad7384.tar.xz
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). (cherry picked from commit 03a69bac95ce4e15016138104cd198a6a60c38cd)
-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));