--- main/mplayer.c 2004-10-16 22:26:14.000000000 +0400 +++ main.dev/mplayer.c 2004-10-25 00:35:00.000000000 +0400 @@ -2474,7 +2474,7 @@ if(use_gui){ guiEventHandling(); guiGetEvent( guiReDraw,NULL ); - if(guiIntfStruct.Playing!=2 || (rel_seek_secs || abs_seek_pos)) break; + if(rel_seek_secs || abs_seek_pos) break; } #endif #ifdef HAVE_MENU @@ -2483,9 +2483,12 @@ #endif usec_sleep(20000); } - if (cmd->id == MP_CMD_PAUSE) { + if (cmd != NULL && cmd->id == MP_CMD_PAUSE) { cmd = mp_input_get_cmd(0,1,0); mp_cmd_free(cmd); +#ifdef HAVE_NEW_GUI + if (use_gui) guiIntfStruct.Playing = 1; +#endif } osd_function=OSD_PLAY; if (audio_out && sh_audio) --- main/Gui/mplayer/play.c 2004-03-26 00:49:48.000000000 +0300 +++ main.dev/Gui/mplayer/play.c 2004-10-25 00:32:53.000000000 +0400 @@ -124,13 +124,13 @@ void mplPause( void ) { if ( !guiIntfStruct.Playing ) return; - if ( guiIntfStruct.Playing == 1 ) + if ( guiIntfStruct.Playing == 1 || guiIntfStruct.Playing == 2 ) { mp_cmd_t * cmd = (mp_cmd_t *)calloc( 1,sizeof( *cmd ) ); cmd->id=MP_CMD_PAUSE; cmd->name=strdup("pause"); mp_input_queue_cmd(cmd); - } else guiIntfStruct.Playing=1; + } } void mplState( void ) --- main/Gui/mplayer/mw.c 2004-06-26 17:26:11.000000000 +0400 +++ main.dev/Gui/mplayer/mw.c 2004-10-25 02:21:18.000000000 +0400 @@ -127,11 +128,8 @@ goto play; #endif case evPlay: - case evPlaySwitchToPause: play: - - if ( ( msg == evPlaySwitchToPause )&&( guiIntfStruct.Playing == 2 ) ) goto NoPause; - + if ( guiIntfStruct.Playing == 2 ) { mplPause(); break; } if ( gtkSet( gtkGetCurrPlItem,0,NULL ) &&( guiIntfStruct.StreamType == STREAMTYPE_FILE ) ) { plItem * next = gtkSet( gtkGetCurrPlItem,0,NULL ); @@ -202,7 +200,7 @@ case evPause: case evPauseSwitchToPlay: -NoPause: + case evPlaySwitchToPause: mplPause(); break;