From 9d43571cd853815c5ba7e36859578b5122d3ce09 Mon Sep 17 00:00:00 2001 From: atmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2> Date: Sun, 10 Mar 2002 08:16:07 +0000 Subject: [PATCH] VM fixes by Nilmoni Deb. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5020 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/x11_common.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/libvo/x11_common.c b/libvo/x11_common.c index f64e6a72a7..b8bb7e6945 100644 --- a/libvo/x11_common.c +++ b/libvo/x11_common.c @@ -672,16 +672,27 @@ void vo_vm_switch(uint32_t X, uint32_t Y, int* modeline_width, int* modeline_hei void vo_vm_close(Display *dpy) { #ifdef HAVE_NEW_GUI - if ((vidmodes!=NULL)&&( vo_window == None ) ) + if (vidmodes!=NULL && vo_window != None) #else if (vidmodes!=NULL) #endif - { - int screen; screen=DefaultScreen( dpy ); - XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); - XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); - free(vidmodes); - } + { + int i, modecount; + int screen; screen=DefaultScreen( dpy ); + + free(vidmodes); vidmodes=NULL; + XF86VidModeGetAllModeLines(mDisplay,mScreen,&modecount,&vidmodes); + for (i=0; i<modecount; i++) + if ((vidmodes[i]->hdisplay == vo_screenwidth) && (vidmodes[i]->vdisplay == vo_screenheight)) + { + printf("\nReturning to original mode %dx%d\n", vo_screenwidth, vo_screenheight); + break; + } + + XF86VidModeSwitchToMode(dpy,screen,vidmodes[i]); + XF86VidModeSwitchToMode(dpy,screen,vidmodes[i]); + free(vidmodes); + } } #endif