Fix minor issue with ErrorScreen unnecessarily redrawing the button.

This commit is contained in:
UnknownShadow200 2016-08-16 12:14:43 +10:00
parent 6b2651b8fb
commit e39be25b3f

View File

@ -84,16 +84,20 @@ namespace ClassicalSharp.Gui {
int lastSecsLeft;
const int delay = 5;
bool lastActive = false;
void UpdateReconnectState( double delta ) {
ButtonWidget btn = (ButtonWidget)widgets[2];
double elapsed = (DateTime.UtcNow - initTime).TotalSeconds;
int scsLeft = Math.Max( 0, (int)(delay - elapsed) );
if( lastSecsLeft == scsLeft ) return;
int secsLeft = Math.Max( 0, (int)(delay - elapsed) );
if( lastSecsLeft == secsLeft && btn.Active == lastActive ) return;
if( secsLeft == 0 ) btn.SetText( "Try to reconnect" );
else btn.SetText( "Try to reconnect.. " + secsLeft );
btn.Disabled = secsLeft != 0;
string suffix = scsLeft == 0 ? "" : ".. " + scsLeft;
btn.SetText( "Try to reconnect" + suffix );
btn.Disabled = scsLeft != 0;
Redraw( delta );
lastSecsLeft = secsLeft;
lastActive = btn.Active;
}
readonly FastColour top = new FastColour( 64, 32, 32 ), bottom = new FastColour( 80, 16, 16 );