From b7d4efa147e099b28a87cac4c4a982bc3814fc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20Korczy=C5=84ski?= Date: Wed, 7 Feb 2024 07:32:12 +0000 Subject: [PATCH] Wrap Clipboard.GetTextAsync in a try-catch to mimic WPF default behavior (#14505) (in WPF this is configurable via FrameworkCompatibilityPreferences.ShouldThrowOnCopyOrCutFailure but by default in WPF it won't throw) --- src/Avalonia.Controls/MaskedTextBox.cs | 10 +++++++++- src/Avalonia.Controls/TextBox.cs | 11 ++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/MaskedTextBox.cs b/src/Avalonia.Controls/MaskedTextBox.cs index 10eae5e7c0..7278bb17c9 100644 --- a/src/Avalonia.Controls/MaskedTextBox.cs +++ b/src/Avalonia.Controls/MaskedTextBox.cs @@ -216,7 +216,15 @@ namespace Avalonia.Controls if (clipboard is null) return; - var text = await clipboard.GetTextAsync(); + string? text = null; + try + { + text = await clipboard.GetTextAsync(); + } + catch (TimeoutException) + { + // Silently ignore. + } if (text == null) return; diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index ce6936b300..5466c61b68 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -1147,7 +1147,16 @@ namespace Avalonia.Controls var clipboard = TopLevel.GetTopLevel(this)?.Clipboard; if (clipboard != null) - text = await clipboard.GetTextAsync(); + { + try + { + text = await clipboard.GetTextAsync(); + } + catch (TimeoutException) + { + // Silently ignore. + } + } if (string.IsNullOrEmpty(text)) {