summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorUoti Urpala <uau@symbol.nonexistent.invalid>2008-04-21 04:50:29 +0300
committerUoti Urpala <uau@symbol.nonexistent.invalid>2008-04-23 13:47:43 +0300
commit0ef3e9ae879a9425eac3b04ce78121e1fdd15af8 (patch)
treefae2550934ee49827256dbc5a19031ecae410c44 /libvo
parentcc8334710e25d3f814bd6668b2cc47adf9921283 (diff)
downloadmpv-0ef3e9ae879a9425eac3b04ce78121e1fdd15af8.tar.bz2
mpv-0ef3e9ae879a9425eac3b04ce78121e1fdd15af8.tar.xz
Move vo_mouse_autohide,vo_wm_type,vo_fs_type,vo_fs_flip to x11 struct
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_xv.c2
-rw-r--r--libvo/x11_common.c49
-rw-r--r--libvo/x11_common.h8
3 files changed, 29 insertions, 30 deletions
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 9838e7a529..e54fbdfccb 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -200,7 +200,7 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
return -1;
}
- vo_mouse_autohide = 1;
+ x11->vo_mouse_autohide = 1;
ctx->is_paused = 0;
ctx->visible_buf = -1;
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index 03d54931d6..0f2a37003b 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -79,11 +79,6 @@ Window mRootWin;
int mScreen;
int mLocalDisplay;
-/* output window id */
-int vo_mouse_autohide = 0;
-int vo_wm_type = 0;
-int vo_fs_type = 0; // needs to be accessible for GUI X11 code
-static int vo_fs_flip = 0;
char **vo_fstype_list;
/* 1 means that the WM is metacity (broken as hell) */
@@ -110,7 +105,7 @@ void vo_x11_ewmh_fullscreen(struct vo_x11_state *x11, int action)
assert(action == _NET_WM_STATE_REMOVE ||
action == _NET_WM_STATE_ADD || action == _NET_WM_STATE_TOGGLE);
- if (vo_fs_type & vo_wm_FULLSCREEN)
+ if (x11->fs_type & vo_wm_FULLSCREEN)
{
XEvent xev;
@@ -515,11 +510,11 @@ int vo_init(struct vo *vo)
opts->vo_screenwidth, opts->vo_screenheight, depth, x11->depthonscreen,
dispName, mLocalDisplay ? "local" : "remote");
- vo_wm_type = vo_wm_detect(vo);
+ x11->wm_type = vo_wm_detect(vo);
- vo_fs_type = vo_x11_get_fs_type(vo_wm_type);
+ x11->fs_type = vo_x11_get_fs_type(x11->wm_type);
- fstype_dump(vo_fs_type);
+ fstype_dump(x11->fs_type);
saver_off(x11->display);
return 1;
@@ -993,7 +988,7 @@ int vo_x11_check_events(struct vo *vo)
// unsigned long vo_KeyTable[512];
- if ((vo_mouse_autohide) && x11->mouse_waiting_hide &&
+ if ((x11->vo_mouse_autohide) && x11->mouse_waiting_hide &&
(GetTimerMS() - x11->mouse_timer >= 1000)) {
vo_hidecursor(display, x11->window);
x11->mouse_waiting_hide = 0;
@@ -1070,7 +1065,7 @@ int vo_x11_check_events(struct vo *vo)
mp_input_queue_cmd(mp_input_parse_cmd(cmd_str));
}
- if (vo_mouse_autohide)
+ if (x11->vo_mouse_autohide)
{
vo_showcursor(display, x11->window);
x11->mouse_waiting_hide = 1;
@@ -1078,7 +1073,7 @@ int vo_x11_check_events(struct vo *vo)
}
break;
case ButtonPress:
- if (vo_mouse_autohide)
+ if (x11->vo_mouse_autohide)
{
vo_showcursor(display, x11->window);
x11->mouse_waiting_hide = 1;
@@ -1094,7 +1089,7 @@ int vo_x11_check_events(struct vo *vo)
1) | MP_KEY_DOWN);
break;
case ButtonRelease:
- if (vo_mouse_autohide)
+ if (x11->vo_mouse_autohide)
{
vo_showcursor(display, x11->window);
x11->mouse_waiting_hide = 1;
@@ -1124,7 +1119,7 @@ int vo_x11_check_events(struct vo *vo)
case MapNotify:
x11->vo_hint.win_gravity = x11->old_gravity;
XSetWMNormalHints(display, x11->window, &x11->vo_hint);
- vo_fs_flip = 0;
+ x11->fs_flip = 0;
break;
case ClientMessage:
if (Event.xclient.message_type == x11->XAWM_PROTOCOLS &&
@@ -1362,7 +1357,7 @@ void vo_x11_setlayer(struct vo *vo, Window vo_window, int layer)
if (WinID >= 0)
return;
- if (vo_fs_type & vo_wm_LAYER)
+ if (x11->fs_type & vo_wm_LAYER)
{
XClientMessageEvent xev;
@@ -1382,7 +1377,7 @@ void vo_x11_setlayer(struct vo *vo, Window vo_window, int layer)
xev.data.l[0]);
XSendEvent(x11->display, mRootWin, False, SubstructureNotifyMask,
(XEvent *) & xev);
- } else if (vo_fs_type & vo_wm_NETWM)
+ } else if (x11->fs_type & vo_wm_NETWM)
{
XClientMessageEvent xev;
char *state;
@@ -1395,13 +1390,13 @@ void vo_x11_setlayer(struct vo *vo, Window vo_window, int layer)
xev.format = 32;
xev.data.l[0] = layer;
- if (vo_fs_type & vo_wm_STAYS_ON_TOP)
+ if (x11->fs_type & vo_wm_STAYS_ON_TOP)
xev.data.l[1] = x11->XA_NET_WM_STATE_STAYS_ON_TOP;
- else if (vo_fs_type & vo_wm_ABOVE)
+ else if (x11->fs_type & vo_wm_ABOVE)
xev.data.l[1] = x11->XA_NET_WM_STATE_ABOVE;
- else if (vo_fs_type & vo_wm_FULLSCREEN)
+ else if (x11->fs_type & vo_wm_FULLSCREEN)
xev.data.l[1] = x11->XA_NET_WM_STATE_FULLSCREEN;
- else if (vo_fs_type & vo_wm_BELOW)
+ else if (x11->fs_type & vo_wm_BELOW)
// This is not fallback. We can safely assume that the situation
// where only NETWM_STATE_BELOW is supported doesn't exist.
xev.data.l[1] = x11->XA_NET_WM_STATE_BELOW;
@@ -1494,13 +1489,13 @@ void vo_x11_fullscreen(struct vo *vo)
struct vo_x11_state *x11 = vo->x11;
int x, y, w, h;
- if (WinID >= 0 || vo_fs_flip)
+ if (WinID >= 0 || x11->fs_flip)
return;
if (vo_fs)
{
// fs->win
- if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+ if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
{
x = x11->vo_old_x;
y = x11->vo_old_y;
@@ -1516,7 +1511,7 @@ void vo_x11_fullscreen(struct vo *vo)
vo_x11_ewmh_fullscreen(x11, _NET_WM_STATE_ADD); // sends fullscreen state to be added if wm supports EWMH
vo_fs = VO_TRUE;
- if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+ if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
{
x11->vo_old_x = vo->dx;
x11->vo_old_y = vo->dy;
@@ -1538,14 +1533,14 @@ void vo_x11_fullscreen(struct vo *vo)
else
x11->old_gravity = x11->vo_hint.win_gravity;
}
- if (vo_wm_type == 0 && !(vo_fsmode & 16))
+ if (x11->wm_type == 0 && !(vo_fsmode & 16))
{
XUnmapWindow(x11->display, x11->window); // required for MWM
XWithdrawWindow(x11->display, x11->window, mScreen);
- vo_fs_flip = 1;
+ x11->fs_flip = 1;
}
- if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+ if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
{
vo_x11_decoration(vo, (vo_fs) ? 0 : 1);
vo_x11_sizehint(vo, x, y, w, h, 0);
@@ -1559,7 +1554,7 @@ void vo_x11_fullscreen(struct vo *vo)
vo_x11_setlayer(vo, x11->window, opts->vo_ontop);
XMapRaised(x11->display, x11->window);
- if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // some WMs change window pos on map
+ if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // some WMs change window pos on map
XMoveResizeWindow(x11->display, x11->window, x, y, w, h);
XRaiseWindow(x11->display, x11->window);
XFlush(x11->display);
diff --git a/libvo/x11_common.h b/libvo/x11_common.h
index 2f01938183..5d06630cbe 100644
--- a/libvo/x11_common.h
+++ b/libvo/x11_common.h
@@ -20,6 +20,11 @@ struct vo_x11_state {
unsigned long xv_colorkey;
unsigned int xv_port;
+ int vo_mouse_autohide;
+ int wm_type;
+ int fs_type;
+ int fs_flip;
+
GC f_gc;
XSizeHints vo_hint;
unsigned int mouse_timer;
@@ -78,8 +83,6 @@ extern Window mRootWin;
extern int mScreen;
extern int mLocalDisplay;
-extern int vo_mouse_autohide;
-
void vo_x11_init_state(struct vo_x11_state *s);
int vo_init(struct vo *vo);
void vo_uninit(struct vo_x11_state *x11);
@@ -177,6 +180,7 @@ int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return)
#define xv_colorkey global_vo->x11->xv_colorkey
#define xv_port global_vo->x11->xv_port
#define vo_gc global_vo->x11->vo_gc
+#define vo_mouse_autohide global_vo->x11->vo_mouse_autohide
#endif
#endif /* MPLAYER_X11_COMMON_H */