From c71d999adca2c55c71358473504c8a8a90c3b3f1 Mon Sep 17 00:00:00 2001 From: Jonathan Gilbert Date: Thu, 13 Jun 2024 12:44:41 -0500 Subject: [PATCH] Updated CanExecuteChanged in NativeMenuItem.cs to thunk to the UI thread if it ends up running on a non-UI thread. --- src/Avalonia.Controls/NativeMenuItem.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/NativeMenuItem.cs b/src/Avalonia.Controls/NativeMenuItem.cs index 5c7c4242b90..6c093ff1f6d 100644 --- a/src/Avalonia.Controls/NativeMenuItem.cs +++ b/src/Avalonia.Controls/NativeMenuItem.cs @@ -5,6 +5,7 @@ using Avalonia.Input; using Avalonia.Media.Imaging; using Avalonia.Metadata; +using Avalonia.Threading; using Avalonia.Utilities; namespace Avalonia.Controls @@ -164,7 +165,10 @@ public bool IsVisible void CanExecuteChanged() { - SetCurrentValue(IsEnabledProperty, Command?.CanExecute(CommandParameter) ?? true); + if (!Dispatcher.UIThread.CheckAccess()) + Dispatcher.UIThread.Invoke(() => CanExecuteChanged()); + else + SetCurrentValue(IsEnabledProperty, Command?.CanExecute(CommandParameter) ?? true); } public bool HasClickHandlers => Click != null;