[Mplayer-cvslog] CVS: main/libvo x11_common.c,1.173,1.174

Roberto Togni CVS syncmail at mplayerhq.hu
Sun Jul 11 22:43:33 CEST 2004


CVS change done by Roberto Togni CVS

Update of /cvsroot/mplayer/main/libvo
In directory mail:/var2/tmp/cvs-serv18850/libvo

Modified Files:
	x11_common.c 
Log Message:
This fixes the problems that originated from my ewmh fs patch, caused by 
a different handling of the wm's ewmh fs implementations.
Patch by Alexander Strasser


Index: x11_common.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/x11_common.c,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -r1.173 -r1.174
--- x11_common.c	14 Jun 2004 04:53:03 -0000	1.173
+++ x11_common.c	11 Jul 2004 20:43:30 -0000	1.174
@@ -78,7 +78,7 @@
 int WinID = -1;
 int vo_mouse_autohide = 0;
 int vo_wm_type = 0;
-static int vo_fs_type = 0;
+int vo_fs_type = 0; // needs to be accessible for GUI X11 code
 static int vo_fs_flip = 0;
 char **vo_fstype_list;
 
@@ -1403,34 +1403,39 @@
     if (vo_fs)
     {
         // fs->win
-        vo_x11_ewmh_fullscreen(_NET_WM_STATE_REMOVE);   // removes fullscreen state if wm supports EWMH
+        if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+        {
+            if (vo_dwidth != vo_screenwidth && vo_dheight != vo_screenheight)
+                return;
+            x = vo_old_x;
+            y = vo_old_y;
+            w = vo_old_width;
+            h = vo_old_height;
+	}
 
-        if (vo_dwidth != vo_screenwidth && vo_dheight != vo_screenheight)
-            return;
+        vo_x11_ewmh_fullscreen(_NET_WM_STATE_REMOVE);   // removes fullscreen state if wm supports EWMH
         vo_fs = VO_FALSE;
-        x = vo_old_x;
-        y = vo_old_y;
-        w = vo_old_width;
-        h = vo_old_height;
     } else
     {
         // win->fs
         vo_x11_ewmh_fullscreen(_NET_WM_STATE_ADD);      // sends fullscreen state to be added if wm supports EWMH
 
-        if (vo_old_width &&
-            (vo_dwidth == vo_screenwidth && vo_dwidth != vo_old_width) &&
-            (vo_dheight == vo_screenheight && vo_dheight != vo_old_height))
-            return;
         vo_fs = VO_TRUE;
-        vo_old_x = vo_dx;
-        vo_old_y = vo_dy;
-        vo_old_width = vo_dwidth;
-        vo_old_height = vo_dheight;
-        x = 0;
-        y = 0;
-        w = vo_screenwidth;
-        h = vo_screenheight;
-
+        if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+        {
+            if (vo_old_width &&
+                (vo_dwidth == vo_screenwidth && vo_dwidth != vo_old_width) &&
+                (vo_dheight == vo_screenheight && vo_dheight != vo_old_height))
+                return;
+            vo_old_x = vo_dx;
+            vo_old_y = vo_dy;
+            vo_old_width = vo_dwidth;
+            vo_old_height = vo_dheight;
+            x = 0;
+            y = 0;
+            w = vo_screenwidth;
+            h = vo_screenheight;
+        }
     }
     {
         long dummy;
@@ -1448,17 +1453,21 @@
         vo_fs_flip = 1;
     }
 
-    vo_x11_decoration(mDisplay, vo_window, (vo_fs) ? 0 : 1);
-    vo_x11_sizehint(x, y, w, h, 0);
-    vo_x11_setlayer(mDisplay, vo_window, vo_fs);
+    if ( ! (vo_fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
+    {
+        vo_x11_decoration(mDisplay, vo_window, (vo_fs) ? 0 : 1);
+        vo_x11_sizehint(x, y, w, h, 0);
+        vo_x11_setlayer(mDisplay, vo_window, vo_fs);
 
-    if ((!(vo_fs)) & vo_ontop)
-        vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
+        if ((!(vo_fs)) & vo_ontop)
+            vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
 
-    XMoveResizeWindow(mDisplay, vo_window, x, y, w, h);
+        XMoveResizeWindow(mDisplay, vo_window, x, y, w, h);
+    }
 #ifdef HAVE_XINERAMA
     vo_x11_xinerama_move(mDisplay, vo_window);
 #endif
+
     XMapRaised(mDisplay, vo_window);
     XRaiseWindow(mDisplay, vo_window);
     XFlush(mDisplay);




More information about the MPlayer-cvslog mailing list