From a01d36ceb36efa6f0da3102cefe343c1e29c433f Mon Sep 17 00:00:00 2001 From: Dong Bin Date: Fri, 18 Apr 2025 19:39:13 +0800 Subject: [PATCH] feat: make mode a flag. --- src/Ursa/Controls/PopConfirm/PopConfirm.cs | 6 +++--- src/Ursa/Controls/PopConfirm/PopConfirmTriggerMode.cs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Ursa/Controls/PopConfirm/PopConfirm.cs b/src/Ursa/Controls/PopConfirm/PopConfirm.cs index 36d3797..04714fb 100644 --- a/src/Ursa/Controls/PopConfirm/PopConfirm.cs +++ b/src/Ursa/Controls/PopConfirm/PopConfirm.cs @@ -190,7 +190,7 @@ public class PopConfirm : ContentControl void OnCanExecuteChanged(object? _, System.EventArgs a) { count++; - if (count != 2) return; + if (count < 1) return; var canExecute = command.CanExecute(button.CommandParameter); if (canExecute) { @@ -225,14 +225,14 @@ public class PopConfirm : ContentControl private void SetupChildrenEventSubscriptions(Control? child, PopConfirmTriggerMode mode) { if (child is null) return; - if (mode == PopConfirmTriggerMode.Click) + if (mode.HasFlag(PopConfirmTriggerMode.Click)) { if (child is Button button) Button.ClickEvent.AddHandler(OnMainButtonClicked, button); else PointerPressedEvent.AddHandler(OnMainElementPressed, child); } - else if (mode == PopConfirmTriggerMode.Focus) + if (mode.HasFlag(PopConfirmTriggerMode.Focus)) { GotFocusEvent.AddHandler(OnMainElementGotFocus, child); LostFocusEvent.AddHandler(OnMainElementLostFocus, child); diff --git a/src/Ursa/Controls/PopConfirm/PopConfirmTriggerMode.cs b/src/Ursa/Controls/PopConfirm/PopConfirmTriggerMode.cs index 5c8cc8c..fdce8be 100644 --- a/src/Ursa/Controls/PopConfirm/PopConfirmTriggerMode.cs +++ b/src/Ursa/Controls/PopConfirm/PopConfirmTriggerMode.cs @@ -1,5 +1,6 @@ namespace Ursa.Controls; +[Flags] public enum PopConfirmTriggerMode { Click,