summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--options/options.c8
-rw-r--r--options/options.h5
-rw-r--r--player/command.c2
-rw-r--r--player/playloop.c8
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)