mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Device visualizer - Don't eat mouse up events on LEDs (fixes pan getting stuck)
This commit is contained in:
parent
e2f456866a
commit
d114c37439
@ -97,16 +97,28 @@ namespace Artemis.UI.Shared
|
||||
/// Occurs when a LED of the device has been clicked
|
||||
/// </summary>
|
||||
public event EventHandler<LedClickedEventArgs>? LedClicked;
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when the device was clicked but not on a LED.
|
||||
/// </summary>
|
||||
public event EventHandler<PointerReleasedEventArgs>? Clicked;
|
||||
|
||||
/// <summary>
|
||||
/// Invokes the <see cref="LedClicked" /> event
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
protected virtual void OnLedClicked(LedClickedEventArgs e)
|
||||
{
|
||||
LedClicked?.Invoke(this, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invokes the <see cref="Clicked" /> event
|
||||
/// </summary>
|
||||
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
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -35,7 +35,8 @@
|
||||
VerticalAlignment="Center"
|
||||
ShowColors="True"
|
||||
Margin="20"
|
||||
LedClicked="DeviceVisualizer_OnLedClicked" />
|
||||
LedClicked="DeviceVisualizer_OnLedClicked"
|
||||
Clicked="DeviceVisualizer_OnClicked"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal"
|
||||
VerticalAlignment="Bottom"
|
||||
|
||||
@ -32,9 +32,15 @@ public class DevicePropertiesView : ReactiveCoreWindow<DevicePropertiesViewModel
|
||||
ViewModel.SelectedLeds.Add(e.Led);
|
||||
}
|
||||
|
||||
private void DeviceDisplayGrid_OnPointerReleased(object? sender, PointerReleasedEventArgs e)
|
||||
private void DeviceVisualizer_OnClicked(object? sender, PointerReleasedEventArgs e)
|
||||
{
|
||||
if (!e.KeyModifiers.HasFlag(KeyModifiers.Shift))
|
||||
ViewModel?.ClearSelectedLeds.Execute().Subscribe();
|
||||
}
|
||||
|
||||
private void DeviceDisplayGrid_OnPointerReleased(object? sender, PointerReleasedEventArgs e)
|
||||
{
|
||||
if (!e.KeyModifiers.HasFlag(KeyModifiers.Shift) && e.Source is not DeviceVisualizer)
|
||||
ViewModel?.ClearSelectedLeds.Execute().Subscribe();
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user