From caa660fc22a9d405034eb3ae2d23e2e8003dbf3d Mon Sep 17 00:00:00 2001 From: larsbrubaker Date: Thu, 20 Mar 2014 18:41:22 -0700 Subject: [PATCH] Don't redraw on auto rotation if we have not done a draw since last invalidate. --- PartPreviewWindow/View3DTransfromPart.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/PartPreviewWindow/View3DTransfromPart.cs b/PartPreviewWindow/View3DTransfromPart.cs index e0b1fc40e..2053341f0 100644 --- a/PartPreviewWindow/View3DTransfromPart.cs +++ b/PartPreviewWindow/View3DTransfromPart.cs @@ -224,6 +224,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnDraw(Graphics2D graphics2D) { + hasDrawn = true; base.OnDraw(graphics2D); } @@ -439,6 +440,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow UiThread.RunOnIdle(AutoSpin); } + bool hasDrawn = false; Stopwatch timeSinceLastSpin = new Stopwatch(); void AutoSpin(object state) { @@ -447,8 +449,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // add it back in to keep it running. UiThread.RunOnIdle(AutoSpin); - if (!timeSinceLastSpin.IsRunning || timeSinceLastSpin.ElapsedMilliseconds > 50) + if ((!timeSinceLastSpin.IsRunning || timeSinceLastSpin.ElapsedMilliseconds > 50) + && hasDrawn) { + hasDrawn = false; timeSinceLastSpin.Restart(); Quaternion currentRotation = meshViewerWidget.TrackballTumbleWidget.TrackBallController.CurrentRotation.GetRotation();