diff --git a/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift b/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift index c57acf11f..3efe3accf 100644 --- a/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift +++ b/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift @@ -748,8 +748,8 @@ class MachineDocument: func openGLViewDidShowOSMouseCursor(_ view: CSOpenGLView) { // The OS mouse cursor became visible, so show the volume controls. - volumeView.layer?.removeAllAnimations() animationFader = nil + volumeView.layer?.removeAllAnimations() volumeView.isHidden = false volumeView.layer?.opacity = 1.0 } diff --git a/OSBindings/Mac/Clock Signal/Machine/CSMachine.mm b/OSBindings/Mac/Clock Signal/Machine/CSMachine.mm index 691249e7d..bf23f3eed 100644 --- a/OSBindings/Mac/Clock Signal/Machine/CSMachine.mm +++ b/OSBindings/Mac/Clock Signal/Machine/CSMachine.mm @@ -779,9 +779,10 @@ struct ActivityObserver: public Activity::Observer { _timer = [[CSHighPrecisionTimer alloc] initWithTask:^{ // Grab the time now and, therefore, the amount of time since the timer last fired - // (capped at half a second). + // (subject to a cap to avoid potential perpetual regression). const auto timeNow = Time::nanos_now(); - const auto duration = std::min(timeNow - lastTime, Time::Nanos(10'000'000'000 / TICKS)); + lastTime = std::max(timeNow - Time::Nanos(10'000'000'000 / TICKS), lastTime); + const auto duration = timeNow - lastTime; CGSize pixelSize; BOOL splitAndSync = NO;