changeset 5919:60cf2bca993f

some bug fix
author pontscho
date Wed, 01 May 2002 09:29:06 +0000
parents dca3016882cf
children 79f5f072348b
files Gui/mplayer/menu.h Gui/mplayer/mw.h Gui/mplayer/sw.h Gui/mplayer/widgets.c Gui/skin/font.c Gui/wm/ws.c Gui/wm/ws.h libvo/x11_common.c mp_msg.c mplayer.h
diffstat 10 files changed, 89 insertions(+), 193 deletions(-) [+]
line wrap: on
line diff
--- a/Gui/mplayer/menu.h	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/mplayer/menu.h	Wed May 01 09:29:06 2002 +0000
@@ -5,7 +5,7 @@
 int             mplOldMenuItem = -1;
 int             mplMenuX,mplMenuY;
 
-void mplHideMenu( int mx,int my );
+void mplHideMenu( int mx,int my,int w );
 
 void mplMenuDraw( wsParamDisplay )
 {
@@ -85,7 +85,7 @@
  wsPostRedisplay( &appMPlayer.menuWindow );
 }
 
-void mplHideMenu( int mx,int my )
+void mplHideMenu( int mx,int my,int w )
 {
  int x,y,i=mplMenuItem;
 
@@ -107,7 +107,7 @@
         appMPlayer.MenuItems[i].x+appMPlayer.MenuItems[i].width,
         appMPlayer.MenuItems[i].y+appMPlayer.MenuItems[i].height ) )
    {
-    mplEventHandling( appMPlayer.MenuItems[i].msg,0 );
+    mplEventHandling( appMPlayer.MenuItems[i].msg,(float)w );
    }
 }
 
--- a/Gui/mplayer/mw.h	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/mplayer/mw.h	Wed May 01 09:29:06 2002 +0000
@@ -166,7 +166,7 @@
             PutImage( &item->Bitmap,item->x,item->y,3,item->pressed );
             break;
        case itPotmeter:
-            PutImage( &item->Bitmap,item->x,item->y,item->phases,item->phases * ( item->value / 100.0f ) );
+            PutImage( &item->Bitmap,item->x,item->y,item->phases,( item->phases - 1 ) * ( item->value / 100.0f ) );
             break;
        case itHPotmeter:
             PutImage( &item->Bitmap,item->x,item->y,item->phases,item->phases * ( item->value / 100.0f ) );
@@ -177,11 +177,10 @@
             goto drawrenderedtext;
        case itDLabel:
             image=fntRender( item->fontid,mplTimer%item->width,item->width,"%s",Translate( item->label ) );
-////            image=fntRender( item->fontid,( mplRedrawTimer / 10 )%item->width,item->width,"%s",Translate( item->label ) );
 drawrenderedtext:
-            PutImage( image,item->x,item->y,1,0 );
             if ( image )
              {
+              PutImage( image,item->x,item->y,1,0 );
               if ( image->Image ) free( image->Image );
               free( image );
              }
@@ -428,7 +427,7 @@
           itemtype=itPRMButton;
           break;
    case wsRRMouseButton:
-          mplHideMenu( RX,RY );
+          mplHideMenu( RX,RY,0 );
           break;
 
    case wsPLMouseButton:
--- a/Gui/mplayer/sw.h	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/mplayer/sw.h	Wed May 01 09:29:06 2002 +0000
@@ -6,6 +6,8 @@
 
 void mplSubDraw( wsParamDisplay )
 {
+ if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit );
+ 
  if ( appMPlayer.subWindow.State == wsWindowFocusIn ) SubVisible++;
 
  if ( !appMPlayer.subWindow.Mapped ||
@@ -37,7 +39,7 @@
           msButton=wsPRMouseButton;
           break;
    case wsRRMouseButton:
-          mplHideMenu( RX,RY );
+          mplHideMenu( RX,RY,1 );
           msButton=0;
           break;
 // ---
@@ -67,9 +69,9 @@
            }
           break;
    case wsRLMouseButton:
-//          if ( ( !mplSubMoved )&&( ( SubVisible++%2 ) ) ) wsMoveTopWindow( &appMPlayer.mainWindow );
           if ( !mplSubMoved )
            {
+#if 0
             if( SubVisible++%2 )
              {
               wsMoveTopWindow( &appMPlayer.mainWindow );
@@ -80,6 +82,18 @@
                wsMoveTopWindow( &appMPlayer.subWindow );
                fprintf( stderr,"[sw] SUB TOP\n" );
               }
+#else
+	    if ( appMPlayer.subWindow.Focused == 2 )
+             {
+              wsMoveTopWindow( &appMPlayer.mainWindow );
+              fprintf( stderr,"[sw] MAIN TOP\n" );
+             }
+             else
+              {
+               wsMoveTopWindow( &appMPlayer.subWindow );
+               fprintf( stderr,"[sw] SUB TOP\n" );
+              }
+#endif
            }
           msButton=0;
           mplSubMoved=0;
--- a/Gui/mplayer/widgets.c	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/mplayer/widgets.c	Wed May 01 09:29:06 2002 +0000
@@ -40,6 +40,7 @@
 
 int gtkPopupMenu = 0;
 int gtkPopupMenuParam = 0;
+int gtkInited = 0;
 
 #include "gtk/sb.h"
 #include "gtk/pl.h"
@@ -49,25 +50,23 @@
 #include "gtk/opts.h"
 #include "gtk/menu.h"
 
-void widgetsCreate( void )
-{
- AboutBox=create_About();
- SkinBrowser=create_SkinBrowser();
- PlayList=create_PlayList();
- FileSelect=create_FileSelect();
- MessageBox=create_MessageBox(0);
- Options=create_Options();
-// PopUpMenu=create_PopUpMenu();
-}
-
 // --- init & close gtk
 
 void gtkInit( int argc,char* argv[], char *envp[] )
 {
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] init gtk ...\n" );
  gtk_set_locale();
  gtk_init( &argc,&argv );
  gdk_set_use_xshm( FALSE );
- widgetsCreate();
+ 
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create about box.\n" );              AboutBox=create_About();
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create skin browser.\n" );           SkinBrowser=create_SkinBrowser();
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create playlist.\n" );               PlayList=create_PlayList();
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create file selector.\n" );          FileSelect=create_FileSelect();
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create message box.\n" );            MessageBox=create_MessageBox(0);
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create preferences dialog box.\n" ); Options=create_Options();
+ 
+ gtkInited=1;
 }
 
 void gtkDone( void )
@@ -105,6 +104,7 @@
 
 void gtkMessageBox( int type,gchar * str )
 {
+ if ( !gtkInited ) return;
  gtk_label_set_text( GTK_LABEL( gtkMessageBoxText ),str );
  gtk_widget_hide( MessageBox );
  switch( type)
--- a/Gui/skin/font.c	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/skin/font.c	Wed May 01 09:29:06 2002 +0000
@@ -165,11 +165,12 @@
 
    obuf=(unsigned long *)tmp->Image;
    ibuf=(unsigned long *)tmp2.Image;
+   oy=0;
 
    for ( y=0;y < tmp->Height;y++ )
     {
      ox=px;
-     oy=y * sx; dx=y * tmp->Width;
+     dx=y * tmp->Width;
      for ( x=0;x < sx;x++ )
       {
        ibuf[oy++]=obuf[dx + ox++];
--- a/Gui/wm/ws.c	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/wm/ws.c	Wed May 01 09:29:06 2002 +0000
@@ -22,6 +22,7 @@
 #include "ws.h"
 #include "wsconv.h"
 #include "../../postproc/rgb2rgb.h"
+#include "../../mp_msg.h"
 
 #include <X11/extensions/XShm.h>
 #ifdef HAVE_XSHAPE
@@ -51,6 +52,7 @@
 XEvent               wsEvent;
 int                  wsWindowDepth;
 int		     wsWMType = 1;
+int		     wsIsKDE = 0;
 GC                   wsHGC;
 MotifWmHints         wsMotifWmHints;
 Atom                 wsTextProperlyAtom = None;
@@ -152,7 +154,7 @@
  wsDisplay=XOpenDisplay( DisplayName );
  if ( !wsDisplay )
   {
-   fprintf( stderr,"[ws] couldn't open the display !\n" );
+   mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] couldn't open the display !\n" );
    exit( 0 );
   }
 }
@@ -164,19 +166,19 @@
     localdisp=0;
     wsUseXShm=0;
  }
- fprintf(stderr,"[ws] Display name: %s => %s display.\n",dispname,localdisp?"local":"REMOTE");
- if (!localdisp) fprintf(stderr,"[ws] Remote display, disabling XMITSHM\n");
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Display name: %s => %s display.\n",dispname,localdisp?"local":"REMOTE");
+ if (!localdisp) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] Remote display, disabling XMITSHM\n");
 }
 
  if ( !XShmQueryExtension( wsDisplay ) )
   {
-   fprintf( stderr,"[ws] sorry, your system is not supported X shared memory extension.\n" );
+   mp_msg( MSGT_GPLAYER,MSGL_ERR,"[ws] sorry, your system is not supported X shared memory extension.\n" );
    wsUseXShm=0;
   }
 #ifdef HAVE_XSHAPE
   if ( !XShapeQueryExtension( wsDisplay,&eventbase,&errorbase ) )
    {
-    fprintf( stderr,"[ws] sorry, your system is not supported XShape extension.\n" );
+    mp_msg( MSGT_GPLAYER,MSGL_ERR,"[ws] sorry, your system is not supported XShape extension.\n" );
     wsUseXShape=0;
    }
 #else
@@ -194,84 +196,63 @@
 #ifdef DEBUG
   {
    int minor,major,shp;
-   fprintf( stderr,"[ws] Screen depth: %d\n",wsDepthOnScreen );
-   fprintf( stderr,"[ws]  size: %dx%d\n",wsMaxX,wsMaxY );
-   fprintf( stderr,"[ws]  red mask: 0x%x\n",wsRedMask );
-   fprintf( stderr,"[ws]  green mask: 0x%x\n",wsGreenMask );
-   fprintf( stderr,"[ws]  blue mask: 0x%x\n",wsBlueMask );
+   mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Screen depth: %d\n",wsDepthOnScreen );
+   mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws]  size: %dx%d\n",wsMaxX,wsMaxY );
+   mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws]  red mask: 0x%x\n",wsRedMask );
+   mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws]  green mask: 0x%x\n",wsGreenMask );
+   mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws]  blue mask: 0x%x\n",wsBlueMask );
    if ( wsUseXShm )
     {
      XShmQueryVersion( wsDisplay,&major,&minor,&shp );
-     fprintf( stderr,"[ws] XShm version is %d.%d\n",major,minor );
+     mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] XShm version is %d.%d\n",major,minor );
     }
    #ifdef HAVE_XSHAPE
     if ( wsUseXShape )
      {
       XShapeQueryVersion( wsDisplay,&major,&minor );
-      fprintf( stderr,"[ws] XShape version is %d.%d\n",major,minor );
+      mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] XShape version is %d.%d\n",major,minor );
      }
    #endif
   }
 #endif
  initConverter();
  wsOutMask=wsGetOutMask();
- #ifdef DEBUG
-  fprintf( stderr,"[ws] Initialized converter: " );
- #endif
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Initialized converter: " );
  switch ( wsOutMask )
   {
    case wsRGB32:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to rgb32\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb32\n" );
      wsConvFunc=BGR8880_to_RGB8880_c;
      break;
    case wsBGR32:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to bgr32\n" );
-     #endif
-//     wsConvFunc=BGR8880_to_BGR8880_c;
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr32\n" );
      wsConvFunc=rgb32tobgr32;
      break;
    case wsRGB24:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to rgb24\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb24\n" );
      wsConvFunc=rgb32to24;
      break;
    case wsBGR24:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to bgr24\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr24\n" );
      wsConvFunc=BGR8880_to_BGR888_c;
      break;
    case wsRGB16:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to rgb16\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb16\n" );
      wsConvFunc=rgb32to16;
      break;
    case wsBGR16:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to bgr16\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr16\n" );
      wsConvFunc=BGR8880_to_BGR565_c;
      break;
    case wsRGB15:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to rgb15\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb15\n" );
      wsConvFunc=rgb32to15;
      break;
    case wsBGR15:
-     #ifdef DEBUG
-      fprintf( stderr,"rgb32 to bgr15\n" );
-     #endif
+     mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr15\n" );
      wsConvFunc=BGR8880_to_BGR555_c;
      break;
   }
-// XSetIOErrorHandler( wsIOErrorHandler );
-// XSetErrorHandler( wsErrorHandler );
 }
 
 // ----------------------------------------------------------------------------------------------
@@ -325,7 +306,7 @@
  XGetWindowAttributes( wsDisplay,wsRootWin,&win->Attribs );
  if ( win->Attribs.depth < 15 )
   {
-   fprintf( stderr,"[ws] sorry, this color depth is not enough.\n" );
+   mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] sorry, this color depth is not enough.\n" );
    exit( 0 );
   }
  XMatchVisualInfo( wsDisplay,wsScreen,win->Attribs.depth,TrueColor,&win->VisualInfo );
@@ -338,33 +319,15 @@
  win->AtomWMSizeHint=XInternAtom( wsDisplay,"WM_SIZE_HINT",False );
  win->AtomWMNormalHint=XInternAtom( wsDisplay,"WM_NORMAL_HINT",False );
  win->AtomProtocols=XInternAtom( wsDisplay,"WM_PROTOCOLS",False );
-#if 0
- {
-  char buf[32]; int i;
-  sprintf( buf,"_%s_REMOTE",label );
-  for( i=0;i < (int)strlen( buf );i++ )
-    if ( ( buf[i] >= 'a' )&&( buf[i] <= 'z' ) ) buf[i]=buf[i] - 32;
-  for( i=0;i < (int)strlen( buf );i++ )
-    if ( buf[i] == ' ' ) buf[i]='_';
-  fprintf( stderr,"[ws] atomname: %s\n",buf );
-  win->AtomRemote=XInternAtom( wsDisplay,buf,False );
- }
-#endif
  win->AtomsProtocols[0]=win->AtomDeleteWindow;
  win->AtomsProtocols[1]=win->AtomTakeFocus;
  win->AtomsProtocols[2]=win->AtomRolle;
 // ---
 
-// win->WindowAttrib.background_pixel=BlackPixel( wsDisplay,wsScreen );
-// win->WindowAttrib.border_pixel=BlackPixel( wsDisplay,wsScreen );
  win->WindowAttrib.background_pixel=BlackPixel( wsDisplay,wsScreen );
  win->WindowAttrib.border_pixel=WhitePixel( wsDisplay,wsScreen );
  win->WindowAttrib.colormap=XCreateColormap( wsDisplay,wsRootWin,win->VisualInfo.visual,AllocNone );
  win->WindowAttrib.event_mask=StructureNotifyMask | FocusChangeMask |
-                              //SubstructureRedirectMask |
-                              //SubstructureNotifyMask |
-                              //ResizeRedirectMask |
-                              //GCGraphicsExposures |
                               ExposureMask | PropertyChangeMask |
                               EnterWindowMask | LeaveWindowMask |
                               VisibilityChangeMask |
@@ -375,9 +338,6 @@
  win->WindowAttrib.override_redirect=False;
  if ( D & wsOverredirect ) win->WindowAttrib.override_redirect=True;
 
-//  win->WindowAttrib.save_under=True;
-//  win->WindowAttrib.do_not_propagate_mask = True;
-
  win->WindowMask=CWBackPixel | CWBorderPixel |
                  CWColormap | CWEventMask | CWCursor |
                  CWX | CWY | CWWidth | CWHeight |
@@ -391,16 +351,12 @@
   win->VisualInfo.visual,
   win->WindowMask,&win->WindowAttrib );
 
-#if 0
- wsClassHint.res_name=label;
-#else
  wsClassHint.res_name="MPlayer";
-#endif
 
  wsClassHint.res_class="MPlayer";
  XSetClassHint( wsDisplay,win->WindowID,&wsClassHint );
 
- win->SizeHint.flags=PPosition | PSize | PResizeInc | PWinGravity; // | PBaseSize
+ win->SizeHint.flags=PPosition | PSize | PResizeInc | PWinGravity | PBaseSize;
  win->SizeHint.x=win->X;
  win->SizeHint.y=win->Y;
  win->SizeHint.width=win->Width;
@@ -419,8 +375,8 @@
   }
  win->SizeHint.height_inc=1;
  win->SizeHint.width_inc=1;
-// win->SizeHint.base_width=win->Width;
-// win->SizeHint.base_height=win->Height;
+ win->SizeHint.base_width=win->Width;
+ win->SizeHint.base_height=win->Height;
  win->SizeHint.win_gravity=StaticGravity;
  XSetWMNormalHints( wsDisplay,win->WindowID,&win->SizeHint );
 
@@ -445,37 +401,6 @@
  wsTextProperty.nitems=strlen( label );
  XSetWMIconName( wsDisplay,win->WindowID,&wsTextProperty );
 
-#if 0
- XChangeProperty( wsDisplay,win->WindowID,
-                  win->AtomRemote,XA_STRING,
-                  8,PropModeReplace,
-                  "REALIZED",8 );
-#endif
-
-//  win->Font=XLoadQueryFont( wsDisplay,"-adobe-helvetica-bold-r-normal--14-140-75-75-p-77-iso8859-1" );
-//  -adobe-times-medium-r-normal--14-140-75-75-p-77-iso8859-1" );
-//  -misc-fixed-bold-r-normal--13-120-75-75-C-80-iso8859-1" );
-//  -misc-fixed-bold-r-normal--15-140-75-75-C-90-iso8859-1" );
-//  -misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1" );
-//  -adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1" );
-//  -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1" );
-//  -*-helvetica-bold-o-normal--14-*-*-*-p-*-iso8859-1" );
-//  if ( !win->Font ) win->Font=XLoadQueryFont( wsDisplay,"fixed" );
-//  if ( !win->Font )
-//   {
-//    fprintf( stderr,"[main] could not load font.\n" );
-//    exit( 0 );
-//   }
-//  win->FontHeight=win->Font->ascent + win->Font->descent;
-//
-//  #ifdef DEBUG
-//   fprintf( stderr,"[ws] font height: %d\n",win->FontHeight );
-//  #endif
-
-//  win->wGCV.font=win->Font->fid;
-//  win->wGCV.foreground=wsBlack;
-//  win->wGCV.background=wsBlack;
-
  win->wGC=XCreateGC( wsDisplay,win->WindowID,
   GCForeground | GCBackground,
   &win->wGCV );
@@ -499,9 +424,7 @@
  win->Idle=NULL;
  win->MouseHandler=NULL;
  win->KeyHandler=NULL;
- #ifdef DEBUG
-  fprintf( stderr,"[ws] window is created. ( %s ).\n",label );
- #endif
+ mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] window is created. ( %s ).\n",label );
 }
 
 void wsDestroyWindow( wsTWindow * win )
@@ -556,17 +479,14 @@
         if ( Event->xclient.message_type == wsWindowList[l]->AtomProtocols )
          {
           if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomDeleteWindow )
-           { wsTrue=False; break; }
+           { i=wsWindowClosed; goto expose; }
           if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomTakeFocus )
            { i=wsWindowFocusIn;  wsWindowList[l]->Focused=wsFocused; goto expose; }
           if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomRolle )
-           { fprintf( stderr,"[ws] rolled.\n" ); }
+           { mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] rolled.\n" ); }
          }
         break;
 
-//   case CirculateRequest:fprintf( stderr,"[ws,r] win: 0x%x\n",(int)Event->xcirculaterequest.window ); break;
-//   case CirculateNotify: fprintf( stderr,"[ws,c] win: 0x%x\n",(int)Event->xcirculate.window );        break;
-
    case MapNotify:   i=wsWindowMapped;   wsWindowList[l]->Mapped=wsMapped;   goto expose;
    case UnmapNotify: i=wsWindowUnmapped; wsWindowList[l]->Mapped=wsNone;     goto expose;
    case FocusIn:
@@ -602,7 +522,6 @@
           {
            wsWindowList[l]->X=x; wsWindowList[l]->Y=y;
            wsWindowList[l]->Width=Event->xconfigure.width; wsWindowList[l]->Height=Event->xconfigure.height;
-//           fprintf( stderr,"[ws] resize: %d,%d %dx%d\n",wsWindowList[l]->X,wsWindowList[l]->Y,Event->xconfigure.width,Event->xconfigure.height );
            if ( wsWindowList[l]->ReSize ) wsWindowList[l]->ReSize( wsWindowList[l]->X,wsWindowList[l]->Y,wsWindowList[l]->Width,wsWindowList[l]->Height );
           }
 
@@ -645,12 +564,6 @@
           wsWindowList[l]->MouseHandler( i,Event->xbutton.x,Event->xbutton.y,Event->xmotion.x_root,Event->xmotion.y_root );
         break;
 
-//   case GravityNotify:
-//        #ifdef DEBUG
-//         fprintf( stderr,"[ws] window ( 0x%x ) gravity: %d,%d\n",wsWindowList[l]->WindowID,Event->xgravity.x,Event->xgravity.y );
-//      #endif
-//        break;
-
    case PropertyNotify:
 	{
 	 char * name = XGetAtomName( wsDisplay,Event->xproperty.atom );
@@ -659,47 +572,20 @@
 	 if ( !strncmp( name,"_ICEWM_TRAY",11 ) ||
 	      !strncmp( name,"_KDE_",5 ) ||
 	      !strncmp( name,"KWM_WIN_DESKTOP",15 ) ) wsWMType=0;
+	      
+	 if ( !strncmp( name,"_KDE_",5 ) ) wsIsKDE=1;
 							  
 //         fprintf(stderr,"[ws] PropertyNotify %s ( 0x%x )\n",name,Event->xproperty.atom );
 							  
 	 XFree( name );
 	 break;
 	}
-#if 0
-        if ( Event->xproperty.atom == wsWindowList[l]->AtomRemote )
-         {
-          Atom            type;
-          int             format;
-          unsigned long   nitems, bytesafter;
-          unsigned char * args = NULL;
-
-//          fprintf( stderr,"[ws] remote property notify.\n" );
-          XGetWindowProperty( wsDisplay,
-                              Event->xproperty.window,
-                              Event->xproperty.atom,
-                              0,( 65536 / sizeof( long ) ),
-                              False,XA_STRING,
-                              &type,&format,&nitems,&bytesafter,
-                              &args );
-          if ( ( nitems )&&( wsWindowList[l]->RemoteHandler ) )
-           {
-            args[strlen( args ) - 1]=0;
-            wsWindowList[l]->RemoteHandler( args );
-            #ifdef DEBUG
-             fprintf( stderr,"[ws]   args: '%s'\n",args );
-            #endif
-            args[strlen( args ) - 1]=1;
-            XFree( args );
-           }
-         }
-#endif
         break;
 
   }
  XFlush( wsDisplay );
  XSync( wsDisplay,False );
  return !wsTrue;
-// return True;
 }
 
 Bool wsDummyEvents( Display * display,XEvent * Event,XPointer arg )
@@ -719,7 +605,7 @@
 void wsMainLoop( void )
 {
  int delay=20;
- fprintf( stderr,"[ws] init threads: %d\n",XInitThreads() );
+ mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] init threads: %d\n",XInitThreads() );
  XSynchronize( wsDisplay,False );
  XLockDisplay( wsDisplay );
 // XIfEvent( wsDisplay,&wsEvent,wsEvents,NULL );
@@ -730,7 +616,6 @@
  // handle pending events
  while ( XPending(wsDisplay) ){
    XNextEvent( wsDisplay,&wsEvent );
-//   printf("### X event: %d  [%d]\n",wsEvent.type,delay);
    wsEvents( wsDisplay,&wsEvent,NULL );
    delay=0;
  }
@@ -835,7 +720,6 @@
     0,0,
     ( win->Width - win->xImage->width ) / 2,( win->Height - win->xImage->height ) / 2,
     win->xImage->width,win->xImage->height,0 );
-//    win->Width,win->Height,0 );
   }
   else
    {
@@ -918,7 +802,8 @@
 // ----------------------------------------------------------------------------------------------
 void wsMoveTopWindow( wsTWindow * win )
 {
-// XUnmapWindow( wsDisplay,win->WindowID ); XMapWindow( wsDisplay,win->WindowID );
+ if ( wsIsKDE ) return;
+ XMapRaised( wsDisplay,win->WindowID );
  XRaiseWindow( wsDisplay,win->WindowID );
 }
 
@@ -1065,17 +950,14 @@
                    win->Attribs.depth,ZPixmap,NULL,&win->Shminfo,Width,Height );
    if ( win->xImage == NULL )
     {
-     fprintf( stderr,"[ws] shared memory extension error.\n" );
+     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
      exit( 0 );
     }
-//   #ifdef DEBUG
-//    fprintf( stderr,"[ws] Screen depth: %d\n",win->xImage->bits_per_pixel );
-//   #endif
    win->Shminfo.shmid=shmget( IPC_PRIVATE,win->xImage->bytes_per_line * win->xImage->height,IPC_CREAT|0777 );
    if ( win->Shminfo.shmid < 0 )
     {
      XDestroyImage( win->xImage );
-     fprintf( stderr,"[ws] shared memory extension error.\n" );
+     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
      exit( 0 );
     }
    win->Shminfo.shmaddr=(char *)shmat( win->Shminfo.shmid,0,0 );
@@ -1084,7 +966,7 @@
     {
      XDestroyImage( win->xImage );
      if ( win->Shminfo.shmaddr != ((char *) -1) ) shmdt( win->Shminfo.shmaddr );
-     fprintf( stderr,"[ws] shared memory extension error.\n" );
+     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
      exit( 0 );
     }
    win->xImage->data=win->Shminfo.shmaddr;
@@ -1100,7 +982,7 @@
                               0 );
     if ( ( win->xImage->data=malloc( win->xImage->bytes_per_line * win->xImage->height ) ) == NULL )
      {
-      fprintf( stderr,"[ws] sorry, not enough memory for draw buffer.\n" );
+      mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] sorry, not enough memory for draw buffer.\n" );
       exit( 0 );
      }
    }
@@ -1142,15 +1024,15 @@
   {
    if ( DPMSQueryExtension( mDisplay,&nothing,&nothing ) )
     {
-     if ( !DPMSEnable( mDisplay ) ) fprintf( stderr,"DPMS not available ?\n" ); // restoring power saving settings
+     if ( !DPMSEnable( mDisplay ) ) mp_msg( MSGT_GPLAYER,MSGL_ERR,"DPMS not available ?\n" ); // restoring power saving settings
       else
        {
         // DPMS does not seem to be enabled unless we call DPMSInfo
         BOOL onoff;
         CARD16 state;
         DPMSInfo( mDisplay,&state,&onoff );
-        if ( onoff ) fprintf( stderr,"Successfully enabled DPMS.\n" );
-         else fprintf( stderr,"Could not enable DPMS.\n" );
+        if ( onoff ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"Successfully enabled DPMS.\n" );
+         else mp_msg( MSGT_GPLAYER,MSGL_STATUS,"Could not enable DPMS.\n" );
        }
     }
   }
@@ -1176,10 +1058,10 @@
    if ( onoff )
     {
       Status stat;
-      fprintf( stderr,"Disabling DPMS.\n" );
+      mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"Disabling DPMS.\n" );
       dpms_disabled=1;
       stat=DPMSDisable( mDisplay );  // monitor powersave off
-      fprintf( stderr,"stat: %d.\n",stat );
+      mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"stat: %d.\n",stat );
    }
   }
 #endif
--- a/Gui/wm/ws.h	Tue Apr 30 23:29:38 2002 +0000
+++ b/Gui/wm/ws.h	Wed May 01 09:29:06 2002 +0000
@@ -77,6 +77,7 @@
 #define wsWindowFocusOut        64
 #define wsWindowExpose         128
 #define wsWindowRolled         256
+#define wsWindowClosed         512
 
 #define wsNone       0
 #define wsMapped     1
--- a/libvo/x11_common.c	Tue Apr 30 23:29:38 2002 +0000
+++ b/libvo/x11_common.c	Wed May 01 09:29:06 2002 +0000
@@ -498,9 +498,6 @@
 		&vo_dx, &vo_dy, (Window *)&foo);
 	    }
 #endif
-//	   if (verbose)
-	    printf("X11 Window %dx%d-%dx%d\n", vo_dx, vo_dy, vo_dwidth, vo_dheight);
-	    printf("============================================================\n" );
            ret|=VO_EVENT_RESIZE;
            break;
       case KeyPress:
@@ -549,8 +546,7 @@
 		 !strncmp( name,"_KDE_",5 ) ||
 	         !strncmp( name,"KWM_WIN_DESKTOP",15 ) ) vo_wm_type=0;
 		
- 	     fprintf(stderr,"[ws] PropertyNotify ( 0x%x ) %s ( 0x%x )\n",
-	      vo_window,name,Event.xproperty.atom );
+// 	     fprintf(stderr,"[ws] PropertyNotify ( 0x%x ) %s ( 0x%x )\n",vo_window,name,Event.xproperty.atom );
 	      
 	    XFree( name );
 	   }
@@ -578,6 +574,7 @@
 void vo_x11_fullscreen( void )
 {
  if ( vo_wm_type ) XUnmapWindow( mDisplay,vo_window );
+
  if ( !vo_fs )
   {
    vo_fs=VO_TRUE;
--- a/mp_msg.c	Tue Apr 30 23:29:38 2002 +0000
+++ b/mp_msg.c	Wed May 01 09:29:06 2002 +0000
@@ -47,7 +47,7 @@
     vsnprintf(tmp, 2048, mp_gettext(format), va);
     tmp[2047] = 0;
 
-#if defined(HAVE_NEW_GUI) && !defined(HAVE_MENCODER) && 0
+#if defined(HAVE_NEW_GUI) && !defined(HAVE_MENCODER)
     if(use_gui)
     {
 	switch(x & 255)
@@ -58,9 +58,9 @@
 	    case MSGL_ERR:
 		gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, tmp);
 		break;
-	    case MSGL_WARN:
-		gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp);
-		break;
+//	    case MSGL_WARN:
+//		gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp);
+//		break;
 	}
     }
 #endif
--- a/mplayer.h	Tue Apr 30 23:29:38 2002 +0000
+++ b/mplayer.h	Wed May 01 09:29:06 2002 +0000
@@ -6,4 +6,6 @@
 extern char* current_module;
 extern int fullscreen;
 
+extern void exit_player(char* how);
+
 #endif
\ No newline at end of file