diff options
-rw-r--r-- | options/options.c | 8 | ||||
-rw-r--r-- | options/options.h | 5 | ||||
-rw-r--r-- | player/command.c | 2 | ||||
-rw-r--r-- | player/playloop.c | 8 |
4 files changed, 12 insertions, 11 deletions
diff --git a/options/options.c b/options/options.c index 7cb750d81b..26aaa24c91 100644 --- a/options/options.c +++ b/options/options.c @@ -145,6 +145,9 @@ static const m_option_t mp_vo_opt_list[] = { ({"default", -1})), OPT_CHOICE_OR_INT("fs-screen", fsscreen_id, 0, 0, 32, ({"all", -2}, {"current", -1})), + OPT_CHOICE_OR_INT("cursor-autohide", cursor_autohide_delay, 0, + 0, 30000, ({"no", -1}, {"always", -2})), + OPT_FLAG("cursor-autohide-fs-only", cursor_autohide_fs, 0), OPT_FLAG("keepaspect", keepaspect, 0), OPT_FLAG("keepaspect-window", keepaspect_window, 0), OPT_FLAG("hidpi-window-scale", hidpi_window_scale, 0), @@ -176,6 +179,7 @@ const struct m_sub_options vo_sub_opts = { .screen_id = -1, .fsscreen_id = -1, .panscan = 0.0f, + .cursor_autohide_delay = 1000, .keepaspect = 1, .keepaspect_window = 1, .hidpi_window_scale = 1, @@ -589,9 +593,6 @@ static const m_option_t mp_opts[] = { OPT_CHOICE_OR_INT("video-rotate", video_rotate, UPDATE_IMGPAR, 0, 359, ({"no", -1})), - OPT_CHOICE_OR_INT("cursor-autohide", cursor_autohide_delay, 0, - 0, 30000, ({"no", -1}, {"always", -2})), - OPT_FLAG("cursor-autohide-fs-only", cursor_autohide_fs, 0), OPT_FLAG("stop-screensaver", stop_screensaver, UPDATE_SCREENSAVER), OPT_SUBSTRUCT("", video_equalizer, mp_csp_equalizer_conf, 0), @@ -909,7 +910,6 @@ static const struct MPOpts mp_default_opts = { .gapless_audio = -1, .wintitle = "${?media-title:${media-title}}${!media-title:No file} - mpv", .stop_screensaver = 1, - .cursor_autohide_delay = 1000, .video_osd = 1, .osd_level = 1, .osd_on_seek = 1, diff --git a/options/options.h b/options/options.h index e20e2c937a..ca87fd4ac9 100644 --- a/options/options.h +++ b/options/options.h @@ -41,6 +41,9 @@ typedef struct mp_vo_opts { struct m_geometry autofit_smaller; double window_scale; + int cursor_autohide_delay; + int cursor_autohide_fs; + int keepaspect; int keepaspect_window; int hidpi_window_scale; @@ -162,8 +165,6 @@ typedef struct MPOpts { struct mp_csp_equalizer_opts *video_equalizer; int stop_screensaver; - int cursor_autohide_delay; - int cursor_autohide_fs; int video_rotate; diff --git a/player/command.c b/player/command.c index 505c092c27..d9ff3c261f 100644 --- a/player/command.c +++ b/player/command.c @@ -6101,7 +6101,7 @@ void mp_option_change_callback(void *ctx, struct m_config_option *co, int flags, if (opt_ptr == &opts->vo->window_scale) update_window_scale(mpctx); - if (opt_ptr == &opts->cursor_autohide_delay) + if (opt_ptr == &opts->vo->cursor_autohide_delay) mpctx->mouse_timer = 0; if (flags & UPDATE_DVB_PROG) { diff --git a/player/playloop.c b/player/playloop.c index 0e0c09654d..3a7b2d193c 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -804,7 +804,7 @@ static void handle_cursor_autohide(struct MPContext *mpctx) unsigned mouse_event_ts = mp_input_get_mouse_event_counter(mpctx->input); if (mpctx->mouse_event_ts != mouse_event_ts) { mpctx->mouse_event_ts = mouse_event_ts; - mpctx->mouse_timer = now + opts->cursor_autohide_delay / 1000.0; + mpctx->mouse_timer = now + vo->opts->cursor_autohide_delay / 1000.0; mouse_cursor_visible = true; } @@ -814,13 +814,13 @@ static void handle_cursor_autohide(struct MPContext *mpctx) mouse_cursor_visible = false; } - if (opts->cursor_autohide_delay == -1) + if (vo->opts->cursor_autohide_delay == -1) mouse_cursor_visible = true; - if (opts->cursor_autohide_delay == -2) + if (vo->opts->cursor_autohide_delay == -2) mouse_cursor_visible = false; - if (opts->cursor_autohide_fs && !opts->vo->fullscreen) + if (vo->opts->cursor_autohide_fs && !opts->vo->fullscreen) mouse_cursor_visible = true; if (mouse_cursor_visible != mpctx->mouse_cursor_visible) |