diff --git a/Source/StevesUEHelpers/Private/StevesUI/FocusableButton.cpp b/Source/StevesUEHelpers/Private/StevesUI/FocusableButton.cpp index 8bd3945..f327d9d 100644 --- a/Source/StevesUEHelpers/Private/StevesUI/FocusableButton.cpp +++ b/Source/StevesUEHelpers/Private/StevesUI/FocusableButton.cpp @@ -130,7 +130,14 @@ void UFocusableButton::Unfocus() const LocalPlayer->GetControllerId()); if (UserIndex.IsSet()) { - FSlateApplication::Get().ClearUserFocus(UserIndex.GetValue()); + TSharedPtr SafeWidget = GetCachedWidget(); + if (SafeWidget.IsValid()) + { + if (SafeWidget->HasUserFocus(UserIndex.GetValue())) + { + FSlateApplication::Get().ClearUserFocus(UserIndex.GetValue()); + } + } } } } diff --git a/Source/StevesUEHelpers/Private/StevesUI/FocusableCheckBox.cpp b/Source/StevesUEHelpers/Private/StevesUI/FocusableCheckBox.cpp index 1b98fff..da1f6d2 100644 --- a/Source/StevesUEHelpers/Private/StevesUI/FocusableCheckBox.cpp +++ b/Source/StevesUEHelpers/Private/StevesUI/FocusableCheckBox.cpp @@ -116,7 +116,14 @@ void UFocusableCheckBox::Unfocus() const LocalPlayer->GetControllerId()); if (UserIndex.IsSet()) { - FSlateApplication::Get().ClearUserFocus(UserIndex.GetValue()); + TSharedPtr SafeWidget = GetCachedWidget(); + if (SafeWidget.IsValid()) + { + if (SafeWidget->HasUserFocus(UserIndex.GetValue())) + { + FSlateApplication::Get().ClearUserFocus(UserIndex.GetValue()); + } + } } } }