summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-03 20:57:13 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-03 20:57:13 +0000
commitb6004b1b7c8710c477a62a06ec7c3535c5e5e2cd (patch)
treee5115e8ab0383b2a86c2d64af0c474174326f491 /libvo
parent4bf6dad4cfc5de14ea0993ff5c7c3c6df251f17f (diff)
downloadmpv-b6004b1b7c8710c477a62a06ec7c3535c5e5e2cd.tar.bz2
mpv-b6004b1b7c8710c477a62a06ec7c3535c5e5e2cd.tar.xz
fix xmga fs, resize to movie size and mouse auto hide + dga
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5956 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_x11.c2
-rw-r--r--libvo/vo_xmga.c19
-rw-r--r--libvo/vo_xv.c8
-rw-r--r--libvo/x11_common.c20
-rw-r--r--libvo/x11_common.h1
5 files changed, 30 insertions, 20 deletions
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 078578258f..0ddcbe8604 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -242,7 +242,7 @@ static uint32_t config( uint32_t width,uint32_t height,uint32_t d_width,uint32_t
#endif
-
+ vo_mouse_autohide=1;
if (!title)
title = strdup("MPlayer X11 (XImage/Shm) render");
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index d22f16a053..f5ca3f1bfb 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -59,6 +59,10 @@ static unsigned int timer=0;
static unsigned int timerd=0;
#endif
+#ifdef HAVE_NEW_GUI
+#include "../Gui/interface.h"
+#endif
+
static vo_info_t vo_info =
{
"X11 (Matrox G200/G4x0/G550 overlay in window using /dev/mga_vid)",
@@ -67,7 +71,6 @@ static vo_info_t vo_info =
""
};
-//static Display * mDisplay;
static XGCValues wGCV;
static XImage * myximage;
@@ -187,17 +190,9 @@ static int inited=0;
static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t* info)
{
- char * frame_mem;
-// uint32_t frame_size;
-// int mScreen;
- unsigned int fg, bg;
char * mTitle=(title == NULL) ? "XMGA render" : title;
- char * name=":0.0";
- XSizeHints hint;
XVisualInfo vinfo;
- XEvent xev;
- XGCValues xgcv;
unsigned long xswamask;
width+=width&1;
@@ -241,6 +236,7 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
vo_dwidth=d_width; vo_dheight=d_height;
if ( vo_fs )
{ vo_old_width=d_width; vo_old_height=d_height; }
+ vo_mouse_autohide=1;
switch ( vo_depthonscreen )
{
@@ -263,10 +259,9 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
vo_dwidth=vo_screenwidth;
vo_dheight=vo_screenheight;
#ifdef X11_FULLSCREEN
- aspect(&vo_dwidth,&vo_dheight,A_ZOOM);
+ aspect(&dwidth,&dheight,A_ZOOM);
#endif
}
- dwidth=vo_dwidth; dheight=vo_dheight;
XGetWindowAttributes( mDisplay,DefaultRootWindow( mDisplay ),&attribs );
mDepth=attribs.depth;
@@ -304,7 +299,7 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
#endif
vo_gc=XCreateGC( mDisplay,vo_window,GCForeground,&wGCV );
#ifdef HAVE_NEW_GUI
- }
+ } else guiGetEvent( guiSetShVideo,0 );
#endif
set_window();
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index de15f6331c..a73ea940f3 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -41,6 +41,10 @@ LIBVO_EXTERN(xv)
#include "../postproc/rgb2rgb.h"
+#ifdef HAVE_NEW_GUI
+#include "../Gui/interface.h"
+#endif
+
static vo_info_t vo_info =
{
"X11/Xv",
@@ -330,6 +334,8 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
image_height = height;
image_width = width;
image_format=format;
+
+ vo_mouse_autohide=1;
vo_dwidth=d_width; vo_dheight=d_height;
vo_fs=flags&1;
@@ -446,7 +452,7 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
}
#endif
#ifdef HAVE_NEW_GUI
- }
+ } else guiGetEvent( guiSetShVideo,0 );
#endif
mp_msg(MSGT_VO,MSGL_V, "using Xvideo port %d for hw scaling\n",xv_port );
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index fbf59a6f05..e89aa75077 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -60,6 +60,7 @@ int mLocalDisplay;
/* output window id */
int WinID=-1;
+int vo_mouse_autohide = 0;
#ifdef HAVE_XINERAMA
int xinerama_screen = 0;
@@ -90,7 +91,10 @@ void vo_hidecursor ( Display *disp , Window win )
}
void vo_showcursor( Display *disp, Window win )
-{ XDefineCursor( disp,win,0 ); }
+{
+ if ( WinID==0 ) return;
+ XDefineCursor( disp,win,0 );
+}
#ifdef SCAN_VISUALS
/*
@@ -384,6 +388,9 @@ static Atom vo_MotifHints = None;
void vo_x11_decoration( Display * vo_Display,Window w,int d )
{
+ if ( !WinID ) return;
+
+#if 0
if(vo_fsmode&1){
XSetWindowAttributes attr;
attr.override_redirect = True;
@@ -394,6 +401,7 @@ void vo_x11_decoration( Display * vo_Display,Window w,int d )
if(vo_fsmode&8){
XSetTransientForHint (vo_Display, w, RootWindow(vo_Display,mScreen));
}
+#endif
vo_MotifHints=XInternAtom( vo_Display,"_MOTIF_WM_HINTS",0 );
if ( vo_MotifHints != None )
@@ -464,7 +472,7 @@ int vo_x11_check_events(Display *mydisplay){
// unsigned long vo_KeyTable[512];
- if ( --vo_mouse_counter == 0 ) vo_hidecursor( mydisplay,vo_window );
+ if ( ( vo_mouse_autohide )&&( --vo_mouse_counter == 0 ) ) vo_hidecursor( mydisplay,vo_window );
while ( XPending( mydisplay ) )
{
@@ -513,11 +521,11 @@ int vo_x11_check_events(Display *mydisplay){
}
break;
case MotionNotify:
- vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const;
+ if ( vo_mouse_autohide ) { vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const; }
break;
#ifdef HAVE_NEW_INPUT
case ButtonPress:
- vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const;
+ if ( vo_mouse_autohide ) { vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const; }
// Ignore mouse whell press event
if(Event.xbutton.button > 3) {
mplayer_put_key(MOUSE_BTN0+Event.xbutton.button-1);
@@ -530,7 +538,7 @@ int vo_x11_check_events(Display *mydisplay){
mplayer_put_key((MOUSE_BTN0+Event.xbutton.button-1)|MP_KEY_DOWN);
break;
case ButtonRelease:
- vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const;
+ if ( vo_mouse_autohide ) { vo_showcursor( mydisplay,vo_window ); vo_mouse_counter=vo_mouse_timer_const; }
#ifdef HAVE_NEW_GUI
// Ignor mouse button 1 - 3 under gui
if ( use_gui && ( Event.xbutton.button >= 1 )&&( Event.xbutton.button <= 3 ) ) break;
@@ -591,7 +599,7 @@ void vo_x11_fullscreen( void )
vo_x11_sizehint( vo_dx,vo_dy,vo_dwidth,vo_dheight,0 );
XMoveResizeWindow( mDisplay,vo_window,vo_dx,vo_dy,vo_dwidth,vo_dheight );
XMapRaised( mDisplay,vo_window );
-
+
XRaiseWindow( mDisplay,vo_window );
XFlush( mDisplay );
}
diff --git a/libvo/x11_common.h b/libvo/x11_common.h
index dac907dec8..dbb231faf7 100644
--- a/libvo/x11_common.h
+++ b/libvo/x11_common.h
@@ -22,6 +22,7 @@ extern int mLocalDisplay;
extern int WinID;
extern int vo_mouse_timer_const;
+extern int vo_mouse_autohide;
int vo_init( void );
int vo_hidecursor ( Display* , Window );