From 5ffb1a32f5d243931377a6ce647b7dbb36c0db81 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Thu, 23 Apr 2020 19:10:24 +0200 Subject: [PATCH] Surface editor - Stop RGB.NET update while editing surface --- .../SurfaceEditor/SurfaceEditorViewModel.cs | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorViewModel.cs index 28be18a9b..6f984eaba 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorViewModel.cs @@ -94,9 +94,7 @@ namespace Artemis.UI.Screens.SurfaceEditor { activeConfig = CreateSurfaceConfiguration("Default"); configs.Add(activeConfig); - _rgbService.UpdateTrigger.Stop(); _surfaceService.SetActiveSurfaceConfiguration(activeConfig); - _rgbService.UpdateTrigger.Start(); } Execute.PostToUIThread(() => @@ -140,9 +138,7 @@ namespace Artemis.UI.Screens.SurfaceEditor } }); - _rgbService.UpdateTrigger.Stop(); _surfaceService.SetActiveSurfaceConfiguration(SelectedSurface); - _rgbService.UpdateTrigger.Start(); } #region Overrides of Screen @@ -203,7 +199,7 @@ namespace Artemis.UI.Screens.SurfaceEditor deviceViewModel.Device.ZIndex = i + 1; } - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); } public void BringForward(SurfaceDeviceViewModel surfaceDeviceViewModel) @@ -218,7 +214,7 @@ namespace Artemis.UI.Screens.SurfaceEditor deviceViewModel.Device.ZIndex = i + 1; } - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); } public void SendToBack(SurfaceDeviceViewModel surfaceDeviceViewModel) @@ -230,7 +226,7 @@ namespace Artemis.UI.Screens.SurfaceEditor deviceViewModel.Device.ZIndex = i + 1; } - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); } public void SendBackward(SurfaceDeviceViewModel surfaceDeviceViewModel) @@ -244,7 +240,7 @@ namespace Artemis.UI.Screens.SurfaceEditor deviceViewModel.Device.ZIndex = i + 1; } - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); } public async Task ViewProperties(SurfaceDeviceViewModel surfaceDeviceViewModel) @@ -255,7 +251,7 @@ namespace Artemis.UI.Screens.SurfaceEditor }); if ((bool) madeChanges) - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); } #endregion @@ -351,7 +347,7 @@ namespace Artemis.UI.Screens.SurfaceEditor } } else - SafeUpdateSurfaceConfiguration(); + _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); _mouseDragStatus = MouseDragStatus.None; } @@ -379,13 +375,6 @@ namespace Artemis.UI.Screens.SurfaceEditor device.UpdateMouseDrag(position); } - private void SafeUpdateSurfaceConfiguration() - { - _rgbService.UpdateTrigger.Stop(); - _surfaceService.UpdateSurfaceConfiguration(SelectedSurface, true); - _rgbService.UpdateTrigger.Start(); - } - #endregion #region Panning and zooming @@ -426,6 +415,18 @@ namespace Artemis.UI.Screens.SurfaceEditor } #endregion + + protected override void OnActivate() + { + _rgbService.UpdateTrigger.Stop(); + base.OnActivate(); + } + + protected override void OnDeactivate() + { + _rgbService.UpdateTrigger.Start(); + base.OnDeactivate(); + } } internal enum MouseDragStatus