=== modified file 'cxfe.c'
--- cxfe.c	2007-03-05 13:52:15 +0000
+++ cxfe.c	2007-03-05 22:30:09 +0000
@@ -353,8 +353,10 @@
 static void dest_size_cb(void *data, int video_width, int video_height, double video_pixel_aspect,
 			 int *dest_width, int *dest_height, double *dest_pixel_aspect)  {
 
+
   if(!running)
      return;
+
   *dest_width        = width;
   *dest_height       = height;
   *dest_pixel_aspect = pixel_aspect;
@@ -372,8 +374,7 @@
   *win_y             = ypos;
   *dest_width        = width;
   *dest_height       = height;
-  *dest_pixel_aspect = pixel_aspect;
-  
+  *dest_pixel_aspect = video_pixel_aspect;
 }
 
 //static void frame_output_cb_x11(void *data, int video_width, int video_height,
@@ -797,7 +798,7 @@
 
    
    while(running) {
-       
+
        XEvent   xevent;
        int got_event;
 
@@ -1211,9 +1212,16 @@
      window[0] = XCreateSimpleWindow(display, XDefaultRootWindow(display),
 				  xpos, ypos, width, height, 1, 0, 0);
 
+     res_v = DisplayWidth(display, screen);
+     res_h = DisplayHeight(display, screen);
+
      window[1] = XCreateSimpleWindow(display, XDefaultRootWindow(display),
-				  0, 0, (DisplayWidth(display, screen)),
-				  (DisplayHeight(display, screen)), 0, 0, 0);
+				     0, 0, res_v, res_h, 0, 0, 0);
+
+     if (fullscreen) {
+       width = res_v;
+       height = res_h;
+     }
 
      XSelectInput(display, window[0], INPUT_MOTION);
 
@@ -1227,18 +1235,16 @@
 		  PROP_MWM_HINTS_ELEMENTS);
 
 
-    if(XShmQueryExtension(display) == True)
+     if(XShmQueryExtension(display) == True)
        completion_event = XShmGetEventBase(display) + ShmCompletion;
-    else
+     else
        completion_event = -1;
 
-    if (fullscreen)
-      wsScreenSaverOff(display);
+     if (fullscreen)
+       wsScreenSaverOff(display);
 
     XMapRaised(display, window[fullscreen]);
 
-    res_h = (DisplayWidth(display, screen) * 1000 / DisplayWidthMM(display, screen));
-    res_v = (DisplayHeight(display, screen) * 1000 / DisplayHeightMM(display, screen));
     XSync(display, True);
     XUnlockDisplay(display);
 
@@ -1251,7 +1257,7 @@
     //else
     vis.frame_output_cb   = frame_output_cb;
     vis.user_data         = NULL;
-    pixel_aspect          = res_v / res_h;
+    pixel_aspect          = res_h / res_v;
     }
 
 

