diff --git a/src/core/engine.cpp b/src/core/engine.cpp index 575f0b474..86d8b8de3 100644 --- a/src/core/engine.cpp +++ b/src/core/engine.cpp @@ -150,10 +150,35 @@ void engine::destroy() void engine::updatePlayPauseIcons() { - s_songEditor->updatePlayPauseIcon(); - s_automationEditor->updatePlayPauseIcon(); - s_bbEditor->updatePlayPauseIcon(); - s_pianoRoll->updatePlayPauseIcon(); + s_songEditor->setPauseIcon( false ); + s_automationEditor->setPauseIcon( false ); + s_bbEditor->setPauseIcon( false ); + s_pianoRoll->setPauseIcon( false ); + + if( s_song->isPlaying() ) + { + switch( s_song->playMode() ) + { + case song::Mode_PlaySong: + s_songEditor->setPauseIcon( true ); + break; + + case song::Mode_PlayAutomationPattern: + s_automationEditor->setPauseIcon( true ); + break; + + case song::Mode_PlayBB: + s_bbEditor->setPauseIcon( true ); + break; + + case song::Mode_PlayPattern: + s_pianoRoll->setPauseIcon( true ); + break; + + default: + break; + } + } }