X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=47b443bc4698f268f821884085c70ac0a79aa7a6;hb=6af61ce31b024cb65ba65e3b22586bc12839915d;hp=29b473b22e006cc0d5ab515884cf7ae1943de63d;hpb=d45b23cf75433a48797cfc5e81ce8fdcfea7c94b;p=xboard.git diff --git a/backend.c b/backend.c index 29b473b..47b443b 100644 --- a/backend.c +++ b/backend.c @@ -11449,6 +11449,7 @@ RecentEngineEvent (int nr) if(mnemonic[n]) { // if somehow the engine with the selected nickname is no longer found in the list, we skip ReplaceEngine(&first, 0); FloatToFront(&appData.recentEngineList, command[n]); + ASSIGN(currentEngine[0], command[n]); } } @@ -14784,18 +14785,25 @@ EditTagsEvent () } void -ToggleSecond () +StartSecond () { - if(second.analyzing) { - SendToProgram("exit\n", &second); - second.analyzing = FALSE; - } else { - if (second.pr == NoProc) StartChessProgram(&second); + if(WaitForEngine(&second, StartSecond)) return; InitChessProgram(&second, FALSE); FeedMovesToProgram(&second, currentMove); SendToProgram("analyze\n", &second); second.analyzing = TRUE; + ThawUI(); +} + +void +ToggleSecond () +{ + if(second.analyzing) { + SendToProgram("exit\n", &second); + second.analyzing = FALSE; + } else { + StartSecond(); } } @@ -17398,7 +17406,7 @@ FeatureDone (ChessProgramState *cps, int val) DelayedEventCallback cb = GetDelayedEvent(); if ((cb == InitBackEnd3 && cps == &first) || (cb == SettingsMenuIfReady && cps == &second) || - (cb == LoadEngine) || + (cb == LoadEngine) || (cb == StartSecond) || (cb == TwoMachinesEventIfReady)) { CancelDelayedEvent(); ScheduleDelayedEvent(cb, val ? 1 : 3600000);