From eb5a83e1c110234b3e835b7a76d83e1ddaa7bfb5 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 16 Jan 2015 23:38:47 +0100 Subject: x11: add --on-all-workspaces option and property Fixes #1469. --- video/out/vo.h | 5 +++-- video/out/x11_common.c | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'video') diff --git a/video/out/vo.h b/video/out/vo.h index 20223493cd..5d136432e3 100644 --- a/video/out/vo.h +++ b/video/out/vo.h @@ -47,8 +47,6 @@ enum mp_voctrl { VOCTRL_RESET = 1, /* Handle input and redraw events, called by vo_check_events() */ VOCTRL_CHECK_EVENTS, - /* used to switch to fullscreen */ - VOCTRL_FULLSCREEN, /* signal a device pause */ VOCTRL_PAUSE, /* start/resume playback */ @@ -68,8 +66,11 @@ enum mp_voctrl { // be updated and redrawn. VOCTRL_REDRAW_FRAME, + VOCTRL_FULLSCREEN, VOCTRL_ONTOP, VOCTRL_BORDER, + VOCTRL_ALL_WORKSPACES, + VOCTRL_UPDATE_WINDOW_TITLE, // char* VOCTRL_SET_CURSOR_VISIBILITY, // bool* diff --git a/video/out/x11_common.c b/video/out/x11_common.c index e280349d24..be1f1b74ed 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1619,6 +1619,16 @@ int vo_x11_control(struct vo *vo, int *events, int request, void *arg) 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), + XA_CARDINAL, 32, ¶ms[0], sizeof(params[0])); + } + x11_send_ewmh_msg(x11, "_NET_WM_DESKTOP", params); + return VO_TRUE; + } case VOCTRL_GET_UNFS_WINDOW_SIZE: { int *s = arg; if (!x11->window) -- cgit v1.2.3