From 478e8e8a07f6d11d4b86d668d76889b57ccb5886 Mon Sep 17 00:00:00 2001 From: Vignesh-SF3580 Date: Thu, 10 Oct 2024 14:05:53 +0530 Subject: [PATCH 1/8] fixed - 18235 : Setting .NET MAUI Button.Text to String.Empty inside a Clicked event handler causes previously set buttons to revert to previous values --- src/Controls/src/Core/Button/Button.iOS.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controls/src/Core/Button/Button.iOS.cs b/src/Controls/src/Core/Button/Button.iOS.cs index cceac8430607..8592180604db 100644 --- a/src/Controls/src/Core/Button/Button.iOS.cs +++ b/src/Controls/src/Core/Button/Button.iOS.cs @@ -106,7 +106,7 @@ Size ICrossPlatformLayout.CrossPlatformMeasure(double widthConstraint, double he // We can't use insets because then the title shows up outside the // bounds of the UIButton. We could set the UIButton to clip bounds // but that feels like it might cause confusing side effects - if (contentMode == UIViewContentMode.Center) + if (contentMode == UIViewContentMode.Center && !string.IsNullOrEmpty(platformButton.CurrentTitle)) platformButton.TitleLabel.Layer.Hidden = false; else platformButton.TitleLabel.Layer.Hidden = true; From 112741d18fb450fdd7768b2631ef8e44b248dded Mon Sep 17 00:00:00 2001 From: Vignesh-SF3580 Date: Thu, 10 Oct 2024 15:21:35 +0530 Subject: [PATCH 2/8] added testcases. --- .../snapshots/android/VerifyButtonText.png | Bin 0 -> 49412 bytes .../TestCases.HostApp/Issues/Issue18235.xaml | 13 +++++++ .../Issues/Issue18235.xaml.cs | 34 ++++++++++++++++++ .../Tests/Issues/Issue18235.cs | 25 +++++++++++++ .../snapshots/ios/VerifyButtonText.png | Bin 0 -> 12853 bytes 5 files changed, 72 insertions(+) create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/VerifyButtonText.png create mode 100644 src/Controls/tests/TestCases.HostApp/Issues/Issue18235.xaml create mode 100644 src/Controls/tests/TestCases.HostApp/Issues/Issue18235.xaml.cs create mode 100644 src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue18235.cs create mode 100644 src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyButtonText.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/VerifyButtonText.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/VerifyButtonText.png new file mode 100644 index 0000000000000000000000000000000000000000..53069f7b5405fb1b05128226e16811c8c2c5a077 GIT binary patch literal 49412 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 + + + +