summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-08-30 23:52:16 +0200
committerwm4 <wm4@nowhere>2016-08-30 23:52:16 +0200
commit4d755143216e4d8dec22b4918c1dd290a5efe814 (patch)
tree177ef8dba13d14853fb79175d9dc8370d4823fbd /video
parentaf1379c43d6a5274b75bce0adeef9e3a9ce87bdf (diff)
downloadmpv-4d755143216e4d8dec22b4918c1dd290a5efe814.tar.bz2
mpv-4d755143216e4d8dec22b4918c1dd290a5efe814.tar.xz
vo: change messy handling of fullscreen and other flags
Before this commit, all VOs had to toggle the option flag themselves, now command.c does it. I can't really comprehend why it required every VO to do this manually. Maybe it was for rejecting the property/option change if the VO didn't support a specific capability. But then it could have checked the VOCTRL result. In any case, I don't care, and successfully changing the property without doing anything (With some VOs) is fine too. Many things work this way now, and it's simpler overall. This change will be useful for cleaning up VO option handling.
Diffstat (limited to 'video')
-rw-r--r--video/out/cocoa_common.m2
-rw-r--r--video/out/vo_rpi.c1
-rw-r--r--video/out/vo_sdl.c1
-rw-r--r--video/out/wayland_common.c4
-rw-r--r--video/out/x11_common.c4
5 files changed, 2 insertions, 10 deletions
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index 557e28e4f1..7cb30cc49d 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -449,7 +449,6 @@ static int vo_cocoa_ontop(struct vo *vo)
return VO_NOTIMPL;
struct mp_vo_opts *opts = vo->opts;
- opts->ontop = !opts->ontop;
vo_set_level(vo, opts->ontop);
return VO_TRUE;
}
@@ -793,7 +792,6 @@ static int vo_cocoa_control_on_main_thread(struct vo *vo, int request, void *arg
switch (request) {
case VOCTRL_FULLSCREEN:
- opts->fullscreen = !opts->fullscreen;
return vo_cocoa_fullscreen(vo);
case VOCTRL_ONTOP:
return vo_cocoa_ontop(vo);
diff --git a/video/out/vo_rpi.c b/video/out/vo_rpi.c
index 947e63037e..cbbd781f0b 100644
--- a/video/out/vo_rpi.c
+++ b/video/out/vo_rpi.c
@@ -612,7 +612,6 @@ static int control(struct vo *vo, uint32_t request, void *data)
switch (request) {
case VOCTRL_FULLSCREEN:
- vo->opts->fullscreen = !vo->opts->fullscreen;
if (p->renderer_enabled)
set_geometry(vo);
vo->want_redraw = true;
diff --git a/video/out/vo_sdl.c b/video/out/vo_sdl.c
index d33ace147a..cf509acae5 100644
--- a/video/out/vo_sdl.c
+++ b/video/out/vo_sdl.c
@@ -975,7 +975,6 @@ static int control(struct vo *vo, uint32_t request, void *data)
switch (request) {
case VOCTRL_FULLSCREEN:
- vo->opts->fullscreen = !vo->opts->fullscreen;
set_fullscreen(vo);
return 1;
case VOCTRL_REDRAW_FRAME:
diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c
index e42af8438e..480f29638b 100644
--- a/video/out/wayland_common.c
+++ b/video/out/wayland_common.c
@@ -957,8 +957,9 @@ void vo_wayland_uninit(struct vo *vo)
static void vo_wayland_ontop(struct vo *vo)
{
struct vo_wayland_state *wl = vo->wayland;
+ if (!vo->opts->ontop)
+ return;
MP_DBG(wl, "going ontop\n");
- vo->opts->ontop = 1;
window_set_toplevel(wl);
schedule_resize(wl, 0, wl->window.width, wl->window.height);
}
@@ -1046,7 +1047,6 @@ int vo_wayland_control(struct vo *vo, int *events, int request, void *arg)
wl->window.events = 0;
return VO_TRUE;
case VOCTRL_FULLSCREEN:
- vo->opts->fullscreen = !vo->opts->fullscreen;
vo_wayland_fullscreen(vo);
return VO_TRUE;
case VOCTRL_ONTOP:
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index 8c51329a13..868d0a1463 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -1801,19 +1801,15 @@ int vo_x11_control(struct vo *vo, int *events, int request, void *arg)
x11->pending_vo_events = 0;
return VO_TRUE;
case VOCTRL_FULLSCREEN:
- opts->fullscreen = !opts->fullscreen;
vo_x11_fullscreen(vo);
return VO_TRUE;
case VOCTRL_ONTOP:
- opts->ontop = !opts->ontop;
vo_x11_setlayer(vo, opts->ontop);
return VO_TRUE;
case VOCTRL_BORDER:
- opts->border = !opts->border;
vo_x11_decoration(vo, vo->opts->border);
return VO_TRUE;
case VOCTRL_ALL_WORKSPACES: {
- opts->all_workspaces = !opts->all_workspaces;
long params[5] = {0xFFFFFFFF, 1};
if (!opts->all_workspaces) {
x11_get_property_copy(x11, x11->rootwin, XA(x11, _NET_CURRENT_DESKTOP),