Mercurial > mplayer.hg
view Gui/mplayer/sw.c @ 15978:c8dc500e078e
memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap.
Committed with the kind blessing of Richard, patch by uau
author | gpoirier |
---|---|
date | Fri, 15 Jul 2005 22:09:30 +0000 |
parents | bc24dd70c6e2 |
children | 4a56f15dee5f |
line wrap: on
line source
// sub window #include <inttypes.h> #include "../../config.h" #include "../../libvo/x11_common.h" #include "../../libvo/fastmemcpy.h" #include "../app.h" #include "../interface.h" #include "../../help_mp.h" #include "widgets.h" int mplSubRender = 0; int SubVisible = 0; extern int boxMoved; extern int sx,sy; extern int i,pot; void mplSubDraw( void ) { if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit ); if ( appMPlayer.subWindow.State == wsWindowFocusIn ) SubVisible++; if ( appMPlayer.subWindow.State == wsWindowFocusOut && metacity_hack != 3 ) SubVisible--; if ( !appMPlayer.subWindow.Mapped || appMPlayer.subWindow.Visible == wsWindowNotVisible ) return; if ( guiIntfStruct.Playing ) mplSubRender=0; if ( mplSubRender && appMPlayer.subWindow.State == wsWindowExpose ) { if ( appMPlayer.sub.Bitmap.Image ) wsPutImage( &appMPlayer.subWindow ); } appMPlayer.subWindow.State=0; } void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY ) { static int mplSubMoved = 0; static int msButton = 0; mplPBShow( X,Y ); switch( Button ) { case wsPRMouseButton: gtkShow( evShowPopUpMenu,NULL ); break; case wsPMMouseButton: gtkShow( evHidePopUpMenu,NULL ); mplShowMenu( RX,RY ); msButton=wsPMMouseButton; break; case wsRMMouseButton: mplHideMenu( RX,RY,1 ); msButton=0; break; // --- case wsPLMouseButton: gtkShow( evHidePopUpMenu,NULL ); sx=X; sy=Y; msButton=wsPLMouseButton; mplSubMoved=0; break; case wsMoveMouse: switch ( msButton ) { case wsPLMouseButton: mplSubMoved=1; if ( !appMPlayer.subWindow.isFullScreen ) wsMoveWindow( &appMPlayer.subWindow,False,RX - sx,RY - sy ); break; case wsPMMouseButton: mplMenuMouseHandle( X,Y,RX,RY ); break; default: mplPBShow( X,Y ); break; } break; case wsRLMouseButton: if ( ( !mplSubMoved )&&( appMPlayer.subWindow.isFullScreen ) ) { if( SubVisible++%2 ) wsMoveTopWindow( wsDisplay,appMPlayer.mainWindow.WindowID ); else wsMoveTopWindow( wsDisplay,appMPlayer.subWindow.WindowID ); } msButton=0; mplSubMoved=0; break; } }