diff --git a/sc2/ChangeLog b/sc2/ChangeLog index 6016d1a38..b5dbd06dd 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,5 @@ Changes towards version 0.7: +- Fixed concurrent screen fades regression (bug #1079) - Alex - Removed some legacy source code files related to resources - SvdB - Put SuperMelee source files in separate subdirectory - SvdB - Added additive and alpha drawing modes to graphics lib - Alex diff --git a/sc2/src/libs/graphics/cmap.c b/sc2/src/libs/graphics/cmap.c index d6c0d6576..9deca4c77 100644 --- a/sc2/src/libs/graphics/cmap.c +++ b/sc2/src/libs/graphics/cmap.c @@ -347,14 +347,20 @@ GetFadeAmount (void) } static void -FlushFadeXForms (void) +finishPendingFade (void) { - LockMutex (XFormControl.Lock); if (fadeInterval) { // end the fade immediately fadeAmount += fadeDelta; fadeInterval = 0; } +} + +static void +FlushFadeXForms (void) +{ + LockMutex (XFormControl.Lock); + finishPendingFade (); UnlockMutex (XFormControl.Lock); } @@ -388,6 +394,8 @@ FadeScreen (ScreenFadeType fadeType, SIZE TimeInterval) LockMutex (XFormControl.Lock); + finishPendingFade (); + if (TimeInterval <= 0) { // end the fade immediately fadeAmount = FadeEnd;