diff --git a/player/core.h b/player/core.h index b772f862f7..12f248dcc2 100644 --- a/player/core.h +++ b/player/core.h @@ -141,6 +141,7 @@ enum { typedef struct MPContext { bool initialized; + bool is_cplayer; struct mpv_global *global; struct MPOpts *opts; struct mp_log *log; diff --git a/player/main.c b/player/main.c index 99ba0becd2..af9ffe8c65 100644 --- a/player/main.c +++ b/player/main.c @@ -412,6 +412,12 @@ int mp_initialize(struct MPContext *mpctx) // From this point on, all mpctx members are initialized. mpctx->initialized = true; + +#if HAVE_COCOA + if (mpctx->is_cplayer) + cocoa_set_input_context(mpctx->input); +#endif + if (opts->force_vo) { opts->fixed_vo = 1; mpctx->video_out = init_best_video_out(mpctx->global, mpctx->input, @@ -456,6 +462,8 @@ int mpv_main(int argc, char *argv[]) struct MPContext *mpctx = mp_create(); struct MPOpts *opts = mpctx->opts; + mpctx->is_cplayer = true; + char *verbose_env = getenv("MPV_VERBOSE"); if (verbose_env) opts->verbose = atoi(verbose_env); @@ -509,10 +517,6 @@ int mpv_main(int argc, char *argv[]) if (mp_initialize(mpctx) < 0) exit_player(mpctx, EXIT_ERROR); -#if HAVE_COCOA - cocoa_set_input_context(mpctx->input); -#endif - mp_play_files(mpctx); exit_player(mpctx, mpctx->stop_play == PT_QUIT ? EXIT_QUIT : mpctx->quit_player_rc);