x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

SetNavigationRule does not ResolveExplicitRules

When calling SetNavigationRule on a User Widget at runtime after the user widget is constructed and setting a navigation rule to Explicit and providing a widget name, the navigation data for that widget is never fully updated as ResolveExplicitRules does not get called and thus there is no explicit widget reference to navigate to.

This makes it impossible to set explicit navigation rules at runtime as the only time ResolveExplicitRules is called is during the construction or template initialization of a widget.

Product Version: UE 4.17
Tags:
more ▼

asked Sep 24 '17 at 10:04 PM in Bug Reports

avatar image

Allar
3.1k 51 121 487

avatar image COfenberg Mar 28 '18 at 03:44 PM

Issue still exists in 4.19.1 Git head 08339b73942f97764afceebdac78fadc117257a6

I stepped through "UWidget::SetNavigationRule()" and ended up in "UWidgetNavigation::UpdateMetaDataEntry()" -> "case EUINavigationRule::Explicit:" -> "if ( NavData.Widget.IsValid() )" which is always false.

A "UWidget::SetNavigationExplicit()" method similar to the "FNavigationMetaData::SetNavigationExplicit()" method would do the trick. Since I need this feature as well I wrote the following function inside our codebase basing on codes I saw while stepping through "UWidget::SetNavigationRule()".

 void SetNavigationExplicit(UWidget& InWidget, EUINavigation InNavigation, UWidget& InFocusRecipient)
 {
     TSharedPtr<SWidget> SafeWidget = InWidget.GetCachedWidget();
     if (SafeWidget.IsValid())
     {
         TSharedPtr<FNavigationMetaData> MetaData = SafeWidget->GetMetaData<FNavigationMetaData>();
         if (!MetaData.IsValid())
         {
             MetaData = MakeShared<FNavigationMetaData>();
             SafeWidget->AddMetadata(MetaData.ToSharedRef());
         }
         MetaData->SetNavigationExplicit(InNavigation, InFocusRecipient.GetCachedWidget());
     }
 }
avatar image g0dSamnit Sep 15 '18 at 06:17 AM

Confirming that this bug is present in 4.20.02.

Unfortunately, I currently can't find another way to get UMG navigation to properly ignore disabled widgets without going back to a fully custom, BP driven menu navigation system. Overall, there's a number of these type of issues in UMG, such as navigation failing to skip over a disabled and non-focusable widget.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

2 answers: sort voted first

Hey Allar-

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here https://issues.unrealengine.com/issue/UE-50270 . You can track the report's status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Cheers

Doug Wilson

more ▼

answered Sep 25 '17 at 03:03 PM

avatar image Mike-Weth Apr 23 '19 at 07:57 PM

So this bug is still unresolved a year and a half later? Will this ever get fixed?

avatar image modena3d Jun 09 '19 at 03:32 AM

me too, the same problem

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

This has now been fixed internally and will be released in 4.24

SetNavigationRule has been deprecated.

4 new methods, which will handle all the cases, have been added:

  • SetNavigationRuleBase

  • SetNavigationRuleExplicit

  • SetNavigationRuleCustom

  • SetNavigationRuleCustomBoundary

more ▼

answered Jun 14 '19 at 06:40 PM

avatar image

Luciano.Ferraro
1 1

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question