summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordudemanguy <random342@airmail.cc>2019-12-02 09:11:06 -0600
committerDudemanguy <random342@airmail.cc>2019-12-04 00:47:05 +0000
commit65a317436df05000366af2738bdbb834e95e33db (patch)
treec57e664163e17d8acc7797015faaf2a41eb0d7e0
parentfd28be400cbee01ea37aec07ea23480aae90e06b (diff)
downloadmpv-65a317436df05000366af2738bdbb834e95e33db.tar.bz2
mpv-65a317436df05000366af2738bdbb834e95e33db.tar.xz
options: move cursor autohiding opts to mp_vo_opts
Certain backends (i.e. wayland) will need to do special things with the mouse. It makes sense to expose the values of these options to them, so they can behave correctly.
-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)