[MPlayer-users] Problem with fullscreen

GoTaR gotar at poczta.onet.pl
Sun Jun 9 12:41:01 CEST 2002


On Sat, Jun 08, 2002 at 12:56:21 +0200, Attila Kinali wrote:

> > Are you two using icewm maybe? If so - I've traced it.
> 
> Yes, I am. Please tell more.

Does your icewm prints error message similar to:

IceWM: BUG? mapRequest for window 400201 sent to destroyed frame 800003!

? Well, I'm not sure what causes the bug, but there's some more info
about it.

1. First of all I've noticed, that mplayer started from mc (by extension
recognition) behaves properly, unlike from xterm,
2. using -fs -vo x11 the picture is simply non-fullscreen,
3. using -fs -vo xv the picture _is scaled_ but the visible window with
decoded video _is not_,
4. pressing 'f' twice (disabling and reenabling fullscreen) fixes
problem,
5. the bug (hmmm... behaviour, if it is a icewm fault) appeared in 1.83
CVS release of vo_xv.c (I'm using only it and x11) and is connected with
just-after-start layering. So you can reverse it (attach #1 - based on
1.95 CVS revision of vo_xv.c) or coment out following line:

XMapWindow(mDisplay, vo_window);

The result is the same - scaling backs, but layering too. It means, that
layer selected by -icelayer option (default 12==menu) will work after...
pressing 'f' twice - the same way like 4th point...

So for now you have 2 choices:
- use '2 f' method to fix scaling,
- use '2 f' method to fix layering.

The difference is that scaling breaks from time to time whereas layering
will disturb you every time provided you have non-autohiding taskbar.

-- 
GoTaR <gotar at priv0.onet.pl>		USA sux
	...Dżahilijja... znowu? Nadal...
PLD stuff at http://mops.uci.agh.edu.pl/~gotar/
-------------- next part --------------
--- libvo/vo_xv.c.orig	Fri Jun  7 18:47:39 2002
+++ libvo/vo_xv.c	Fri Jun  7 22:53:58 2002
@@ -347,6 +347,10 @@
  vo_dx=( vo_screenwidth - d_width ) / 2; vo_dy=( vo_screenheight - d_height ) / 2;
  vo_dwidth=d_width; vo_dheight=d_height;
      
+ vo_fs=flags&1;
+ if ( vo_fs )
+  { vo_old_width=d_width; vo_old_height=d_height; }
+
 #ifdef HAVE_XF86VM
  if( flags&0x02 ) vm = 1;
 #endif
@@ -394,6 +398,8 @@
 #endif
    if ( vo_fs )
     {
+     hint.width=vo_screenwidth;
+     hint.height=vo_screenheight;
 #ifdef X11_FULLSCREEN
      /* this code replaces X11_FULLSCREEN hack in mplayer.c
       * aspect() is available through aspect.h for all vos.
@@ -444,8 +450,8 @@
 	  )));
         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
 	vo_x11_xinerama_move(mDisplay,vo_window);
 #endif


More information about the MPlayer-users mailing list