diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index 3cec517d6..39998684b 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -74,7 +74,7 @@ namespace Artemis.Core.Services _modifyingProviders = true; List toRemove = _devices.Where(a => deviceProvider.Devices.Any(d => a.RgbDevice == d)).ToList(); - Surface.Detach(deviceProvider.Devices); + Surface.Detach(toRemove.Select(d => d.RgbDevice)); foreach (ArtemisDevice device in toRemove) RemoveDevice(device); @@ -118,7 +118,7 @@ namespace Artemis.Core.Services _modifyingProviders = true; List toRemove = _devices.Where(a => deviceProvider.Devices.Any(d => a.RgbDevice == d)).ToList(); - Surface.Detach(deviceProvider.Devices); + Surface.Detach(toRemove.Select(d => d.RgbDevice)); foreach (ArtemisDevice device in toRemove) RemoveDevice(device); diff --git a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs index ca0d1ce60..9448d8f40 100644 --- a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs +++ b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs @@ -79,6 +79,11 @@ namespace Artemis.Core.Services.Models public void Arrange(List devices) { ArrangedDevices.Clear(); + + // Not much to do here + if (!devices.Any()) + return; + foreach (ArtemisDevice surfaceDevice in devices) { surfaceDevice.X = 0;