diff --git a/src/Artemis.UI.Shared/Controls/DeviceVisualizer.cs b/src/Artemis.UI.Shared/Controls/DeviceVisualizer.cs index aab383528..1b0c1326b 100644 --- a/src/Artemis.UI.Shared/Controls/DeviceVisualizer.cs +++ b/src/Artemis.UI.Shared/Controls/DeviceVisualizer.cs @@ -97,16 +97,28 @@ namespace Artemis.UI.Shared /// Occurs when a LED of the device has been clicked /// public event EventHandler? LedClicked; + + /// + /// Occurs when the device was clicked but not on a LED. + /// + public event EventHandler? Clicked; /// /// Invokes the event /// - /// protected virtual void OnLedClicked(LedClickedEventArgs e) { LedClicked?.Invoke(this, e); } + /// + /// Invokes the event + /// + protected virtual void OnClicked(PointerReleasedEventArgs e) + { + Clicked?.Invoke(this, e); + } + private void Update() { InvalidateVisual(); @@ -142,10 +154,9 @@ namespace Artemis.UI.Shared Point scaledPosition = new(x * Device.Rectangle.Width, y * Device.Rectangle.Height); DeviceVisualizerLed? deviceVisualizerLed = _deviceVisualizerLeds.FirstOrDefault(l => l.HitTest(scaledPosition)); if (deviceVisualizerLed != null) - { OnLedClicked(new LedClickedEventArgs(deviceVisualizerLed.Led.Device, deviceVisualizerLed.Led, e)); - e.Handled = true; - } + else + OnClicked(e); } private void DevicePropertyChanged(object? sender, PropertyChangedEventArgs e) @@ -326,5 +337,7 @@ namespace Artemis.UI.Shared } #endregion + + } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml b/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml index 8c386fa11..55a4305a1 100644 --- a/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml +++ b/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml @@ -35,7 +35,8 @@ VerticalAlignment="Center" ShowColors="True" Margin="20" - LedClicked="DeviceVisualizer_OnLedClicked" /> + LedClicked="DeviceVisualizer_OnLedClicked" + Clicked="DeviceVisualizer_OnClicked"/>