[Mplayer-cvslog] CVS: main/libvo mga_common.c,1.32,1.33 vo_xmga.c,1.64,1.65 vo_xv.c,1.83,1.84 vo_xvidix.c,1.32,1.33 x11_common.c,1.73,1.74
Zoltan Ponekker
pontscho at mplayerhq.hu
Tue May 7 15:31:33 CEST 2002
Update of /cvsroot/mplayer/main/libvo
In directory mail:/var/tmp.root/cvs-serv27592/libvo
Modified Files:
mga_common.c vo_xmga.c vo_xv.c vo_xvidix.c x11_common.c
Log Message:
wm detection -- round two
Index: mga_common.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/mga_common.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- mga_common.c 5 May 2002 18:58:42 -0000 1.32
+++ mga_common.c 7 May 2002 13:31:29 -0000 1.33
@@ -276,6 +276,10 @@
mga_fullscreen();
#endif
return VO_TRUE;
+#if defined( VO_XMGA ) && defined( HAVE_NEW_GUI )
+ case VOCTRL_GUISUPPORT:
+ return VO_TRUE;
+#endif
}
return VO_NOTIMPL;
}
Index: vo_xmga.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xmga.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- vo_xmga.c 6 May 2002 16:56:41 -0000 1.64
+++ vo_xmga.c 7 May 2002 13:31:29 -0000 1.65
@@ -292,8 +292,6 @@
vo_x11_classhint( mDisplay,vo_window,"xmga" );
vo_hidecursor(mDisplay,vo_window);
-// if ( vo_fs ) vo_x11_decoration( mDisplay,vo_window,0 );
-
XStoreName( mDisplay,vo_window,mTitle );
XMapWindow( mDisplay,vo_window );
Index: vo_xv.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xv.c,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- vo_xv.c 6 May 2002 16:56:41 -0000 1.83
+++ vo_xv.c 7 May 2002 13:31:29 -0000 1.84
@@ -436,7 +436,6 @@
);
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
XSetWMNormalHints( mDisplay,vo_window,&hint );
-// if ( vo_fs ) vo_x11_decoration( mDisplay,vo_window,0 );
XMapWindow(mDisplay, vo_window);
if ( flags&1 ) vo_x11_fullscreen();
#ifdef HAVE_XINERAMA
Index: vo_xvidix.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xvidix.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- vo_xvidix.c 4 May 2002 22:52:56 -0000 1.32
+++ vo_xvidix.c 7 May 2002 13:31:29 -0000 1.33
@@ -33,6 +33,10 @@
#include "vosub_vidix.h"
#include "../vidix/vidixlib.h"
+#ifdef HAVE_NEW_GUI
+#include "../Gui/interface.h"
+#endif
+
LIBVO_EXTERN(xvidix)
static vo_info_t vo_info =
@@ -228,9 +232,9 @@
window_width = d_width;
window_height = d_height;
- vo_fs = flags&0x01;
- if (vo_fs)
- { vo_old_width=d_width; vo_old_height=d_height; }
+// vo_fs = flags&0x01;
+// if (vo_fs)
+// { vo_old_width=d_width; vo_old_height=d_height; }
X_already_started++;
@@ -254,26 +258,29 @@
}
aspect(&d_width, &d_height, A_NOZOOM);
+
+ vo_dwidth=d_width; vo_dheight=d_height;
#ifdef HAVE_NEW_GUI
-if (vo_window == None)
+if(use_gui) guiGetEvent( guiSetShVideo,0 ); // the GUI will set up / resize the window
+else
{
#endif
#ifdef X11_FULLSCREEN
- if (vo_fs) /* fullscreen */
+ if ( flags&1 ) /* fullscreen */
{
if (flags & 0x04)
{
aspect(&d_width, &d_height, A_ZOOM);
}
- else
- {
- d_width = vo_screenwidth;
- d_height = vo_screenheight;
- }
- window_width = vo_screenwidth;
- window_height = vo_screenheight;
+// else
+// {
+// d_width = vo_screenwidth;
+// d_height = vo_screenheight;
+// }
+// window_width = vo_screenwidth;
+// window_height = vo_screenheight;
}
#endif
dwidth = d_width;
@@ -310,10 +317,10 @@
vo_x11_classhint(mDisplay, vo_window, "xvidix");
vo_hidecursor(mDisplay, vo_window);
-#ifdef X11_FULLSCREEN
- if (vo_fs) /* fullscreen */
- vo_x11_decoration(mDisplay, vo_window, 0);
-#endif
+//#ifdef X11_FULLSCREEN
+// if (vo_fs && vo_wm_type == 0) /* fullscreen */
+// vo_x11_decoration(mDisplay, vo_window, 0);
+//#endif
XGetNormalHints(mDisplay, vo_window, &hint);
hint.x = window_x;
@@ -327,13 +334,16 @@
/* Map window. */
XMapWindow(mDisplay, vo_window);
+
+ if ( flags&1 ) vo_x11_fullscreen();
+
#ifdef HAVE_XINERAMA
vo_x11_xinerama_move(mDisplay, vo_window);
#endif
vo_gc = XCreateGC(mDisplay, vo_window, GCForeground, &mGCV);
- XSelectInput( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | ButtonPressMask | ButtonReleaseMask );
+// XSelectInput( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | ButtonPressMask | ButtonReleaseMask );
#ifdef HAVE_NEW_GUI
}
#endif
Index: x11_common.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/x11_common.c,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- x11_common.c 6 May 2002 15:48:07 -0000 1.73
+++ x11_common.c 7 May 2002 13:31:29 -0000 1.74
@@ -174,6 +174,59 @@
#undef MSGLEN
}
+int vo_wm_detect( void )
+{
+ Atom type;
+ Window win;
+ XEvent xev;
+ int c = 0;
+ int wm = vo_wm_Unknown;
+ int format;
+ unsigned long nitems, bytesafter;
+ unsigned char * args = NULL;
+#if 1
+// --- netwm
+ type=XInternAtom( mDisplay,"_NET_SUPPORTED",False );
+ if ( Success == XGetWindowProperty( mDisplay,mRootWin,type,0,65536 / sizeof( long ),False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 )
+ {
+ mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Detected wm is NetWM.\n" );
+ XFree( args );
+ return vo_wm_NetWM;
+ }
+#endif
+// --- other wm
+ mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Create window for WM detect ...\n" );
+ win=XCreateSimpleWindow( mDisplay,mRootWin,vo_screenwidth,vo_screenheight,1,1,0,0,0 );
+ XSelectInput( mDisplay,win,PropertyChangeMask | StructureNotifyMask );
+ XMapWindow( mDisplay,win );
+ XMoveWindow( mDisplay,win,vo_screenwidth,vo_screenheight );
+ do
+ {
+ XCheckWindowEvent( mDisplay,win,PropertyChangeMask | StructureNotifyMask,&xev );
+
+ if ( xev.type == PropertyNotify )
+ {
+ char * name = XGetAtomName( mDisplay,xev.xproperty.atom );
+ if ( !name ) break;
+
+ if ( !strncmp( name,"_ICEWM_TRAY",11 ) )
+ { mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Detected wm is IceWM.\n" ); wm=vo_wm_IceWM; break; }
+ if ( !strncmp( name,"_KDE_",5 ) )
+ { mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Detected wm is KDE.\n" ); wm=vo_wm_KDE; break; }
+ if ( !strncmp( name,"KWM_WIN_DESKTOP",15 ) )
+ { mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Detected wm is WindowMaker style.\n" ); wm=vo_wm_WMakerStyle; break; }
+// fprintf(stderr,"[ws] PropertyNotify ( 0x%x ) %s ( 0x%x )\n",win,name,xev.xproperty.atom );
+
+ XFree( name );
+ }
+ } while( c++ < 25 );
+ XDestroyWindow( mDisplay,win );
+#ifdef MP_DEBUG
+ if ( wm == vo_wm_Unknown ) mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Unknown wm type...\n" );
+#endif
+ return wm;
+}
+
int vo_init( void )
{
// int mScreen;
@@ -297,19 +350,7 @@
depth, vo_depthonscreen,
dispName,mLocalDisplay?"local":"remote");
- {
- Atom type;
- int format;
- unsigned long nitems, bytesafter;
- unsigned char * args = NULL;
- type=XInternAtom( mDisplay,"_NET_SUPPORTED",False );
- if ( Success == XGetWindowProperty( mDisplay,mRootWin,type,0,65536 / sizeof( long ),False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 )
- {
- mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] Detected wm is NetWM.\n" );
- XFree( args );
- vo_wm_type=vo_wm_NetWM;
- }
- }
+ vo_wm_type=vo_wm_detect();
return 1;
}
@@ -564,6 +605,7 @@
mplayer_put_key(MOUSE_BTN0+Event.xbutton.button-1);
break;
#endif
+#if 1
case PropertyNotify:
{
char * name = XGetAtomName( mydisplay,Event.xproperty.atom );
@@ -590,9 +632,9 @@
XFree( name );
}
break;
+#endif
}
}
-
return ret;
}
@@ -675,7 +717,11 @@
switch ( vo_wm_type )
{
+// case vo_wm_WMakerStyle:
+// vo_x11_decoration( mDisplay,vo_window,(vo_fs) ? 1 : 0 );
+ break;
case vo_wm_Unknown:
+ vo_x11_decoration( mDisplay,vo_window,(vo_fs) ? 1 : 0 );
XUnmapWindow( mDisplay,vo_window );
break;
case vo_wm_IceWM:
More information about the MPlayer-cvslog
mailing list