summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer/sw.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/mplayer/sw.c')
-rw-r--r--Gui/mplayer/sw.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/Gui/mplayer/sw.c b/Gui/mplayer/sw.c
new file mode 100644
index 0000000000..7a404d09ca
--- /dev/null
+++ b/Gui/mplayer/sw.c
@@ -0,0 +1,74 @@
+
+// sub window
+
+int mplSubRender = 0;
+int SubVisible = 0;
+
+void mplSubDraw( wsParamDisplay )
+{
+ if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit );
+
+ if ( appMPlayer.subWindow.State == wsWindowFocusIn ) SubVisible++;
+ if ( appMPlayer.subWindow.State == wsWindowFocusOut && wsWMType != wsWMKDE && wsWMType != wsWMIceWM ) 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;
+
+ 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;
+ }
+ break;
+ case wsRLMouseButton:
+ if ( ( !mplSubMoved )&&( appMPlayer.subWindow.isFullScreen ) )
+ {
+ if( SubVisible++%2 ) wsMoveTopWindow( wsDisplay,appMPlayer.mainWindow.WindowID );
+ else if ( wsWMType != wsWMNetWM && wsWMType != wsWMKDE ) wsMoveTopWindow( wsDisplay,appMPlayer.subWindow.WindowID );
+ }
+ msButton=0;
+ mplSubMoved=0;
+ break;
+ }
+}