summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-09 20:47:14 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-09 20:47:14 +0000
commit52a7bad9a6b5240797ba9780e182a31caf3e79d4 (patch)
tree41c7ff8cc73c61efce83a7c721a0fa352a940e8a /libvo
parent8c30a49e223eebe3f20a522b66dc32e120024853 (diff)
downloadmpv-52a7bad9a6b5240797ba9780e182a31caf3e79d4.tar.bz2
mpv-52a7bad9a6b5240797ba9780e182a31caf3e79d4.tar.xz
- sync with x11_common
- half rewrited font render engine (disabled by default) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8865 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/x11_common.c19
-rw-r--r--libvo/x11_common.h17
2 files changed, 24 insertions, 12 deletions
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index 6760fe13a2..c9417427d0 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -41,10 +41,6 @@
#include "../mplayer.h"
#endif
-#define vo_wm_Unknown 0
-#define vo_wm_NetWM 1
-#define vo_wm_Layered 2
-
#define WIN_LAYER_ONBOTTOM 2
#define WIN_LAYER_NORMAL 4
#define WIN_LAYER_ONTOP 6
@@ -72,10 +68,6 @@ int vo_wm_type = -1;
/* if equal to 1 means that WM is a metacity (broken as hell) */
int metacity_hack = 0;
-#define SUPPORT_NONE 0
-#define SUPPORT_FULLSCREEN 1
-#define SUPPORT_ABOVE 2
-#define SUPPORT_STAYS_ON_TOP 4
int net_wm_support = 0;
Atom XA_NET_SUPPORTED;
@@ -701,10 +693,13 @@ void vo_x11_sizehint( int x, int y, int width, int height, int max )
XSetWMNormalHints( mDisplay,vo_window,&vo_hint );
}
-void vo_x11_setlayer( int layer )
+void vo_x11_setlayer( Display * mDisplay,Window vo_window,int layer )
{
if ( WinID >= 0 ) return;
-
+
+ // window manager could be changed during play
+ vo_wm_type=vo_wm_detect();
+
switch ( vo_wm_type )
{ case vo_wm_Layered:
{
@@ -718,6 +713,7 @@ void vo_x11_setlayer( int layer )
xev.data.l[0] = layer?ice_layer:WIN_LAYER_NORMAL; // if not fullscreen, stay on layer "Normal"
xev.data.l[1] = CurrentTime;
mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Layered style stay on top ( layer %d ).\n",xev.data.l[0] );
+ printf( "[x11] Layered style stay on top ( layer %d ).\n",xev.data.l[0] );
XSendEvent(mDisplay, mRootWin, False, SubstructureNotifyMask, (XEvent *) &xev);
break;
}
@@ -751,6 +747,7 @@ void vo_x11_setlayer( int layer )
}
state = XGetAtomName (mDisplay, xev.data.l[1]);
mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] NET style stay on top ( layer %d ). Using state %s.\n",layer,state );
+ printf( "[x11] NET style stay on top ( layer %d ). Using state %s.\n",layer,state );
XFree (state);
}
}
@@ -784,7 +781,7 @@ void vo_x11_fullscreen( void )
vo_x11_decoration( mDisplay,vo_window,(vo_fs) ? 0 : 1 );
vo_x11_sizehint( x,y,w,h,0 );
}
- vo_x11_setlayer( vo_fs );
+ vo_x11_setlayer( mDisplay,vo_window,vo_fs );
if (net_wm_support!=SUPPORT_FULLSCREEN || metacity_hack==1)
{
if(vo_wm_type==vo_wm_Unknown && !(vo_fsmode&16))
diff --git a/libvo/x11_common.h b/libvo/x11_common.h
index ad6d09b97d..f500613d4f 100644
--- a/libvo/x11_common.h
+++ b/libvo/x11_common.h
@@ -7,6 +7,19 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#define vo_wm_Unknown 0
+#define vo_wm_NetWM 1
+#define vo_wm_Layered 2
+
+#define SUPPORT_NONE 0
+#define SUPPORT_FULLSCREEN 1
+#define SUPPORT_ABOVE 2
+#define SUPPORT_STAYS_ON_TOP 4
+
+extern int net_wm_support;
+extern int metacity_hack;
+extern int vo_fsmode;
+
extern int vo_depthonscreen;
extern int vo_screenwidth;
extern int vo_screenheight;
@@ -35,6 +48,7 @@ extern void vo_x11_sizehint( int x, int y, int width, int height, int max );
extern int vo_x11_check_events(Display *mydisplay);
extern void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask);
extern void vo_x11_fullscreen( void );
+extern void vo_x11_setlayer( Display * mDisplay,Window vo_window,int layer );
extern void vo_x11_uninit();
extern Colormap vo_x11_create_colormap(XVisualInfo *vinfo);
extern uint32_t vo_x11_set_equalizer(char *name, int value);
@@ -63,6 +77,7 @@ void vo_vm_switch(uint32_t, uint32_t, int*, int*);
void vo_vm_close(Display*);
#endif
+int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return);
+
#endif
-int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return);