Skip to content

Commit dadcc05

Browse files
authored
Remove code that removed focus visual in SelectionFollowsFocus mode (#3190)
* Remove code that removed focus visual in SelectionFollowsFocus mode * Remove unused func
1 parent 8730c31 commit dadcc05

File tree

3 files changed

+0
-53
lines changed

3 files changed

+0
-53
lines changed

dev/NavigationView/NavigationView.cpp

-46
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,6 @@ void NavigationView::OnApplyTemplate()
664664
UpdatePaneTabFocusNavigation();
665665
UpdateBackAndCloseButtonsVisibility();
666666
UpdateSingleSelectionFollowsFocusTemplateSetting();
667-
UpdateNavigationViewUseSystemVisual();
668667
UpdatePaneVisibility();
669668
UpdateVisualState();
670669
UpdatePaneTitleMargins();
@@ -1185,11 +1184,6 @@ void NavigationView::OnRepeaterElementPrepared(const winrt::ItemsRepeater& ir, c
11851184
}();
11861185
winrt::get_self<NavigationViewItem>(nvi)->PropagateDepthToChildren(childDepth);
11871186

1188-
if (ir != m_topNavRepeaterOverflowView.get())
1189-
{
1190-
nvibImpl->UseSystemFocusVisuals(ShouldShowFocusVisual());
1191-
}
1192-
11931187
// Register for item events
11941188
auto nviRevokers = winrt::make_self<NavigationViewItemRevokers>();
11951189
nviRevokers->tappedRevoker = nvi.Tapped(winrt::auto_revoke, { this, &NavigationView::OnNavigationViewItemTapped });
@@ -3165,45 +3159,6 @@ void NavigationView::UpdateLeftNavigationOnlyVisualState(bool useTransitions)
31653159
winrt::VisualStateManager::GoToState(*this, isToggleButtonVisible ? L"TogglePaneButtonVisible" : L"TogglePaneButtonCollapsed", false /*useTransitions*/);
31663160
}
31673161

3168-
void NavigationView::UpdateNavigationViewUseSystemVisual()
3169-
{
3170-
if (SharedHelpers::IsRS1OrHigher() && !ShouldPreserveNavigationViewRS4Behavior() && m_appliedTemplate)
3171-
{
3172-
PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(m_leftNavRepeater.get(), ShouldShowFocusVisual());
3173-
PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(m_leftNavFooterMenuRepeater.get(), ShouldShowFocusVisual());
3174-
PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(m_topNavRepeater.get(), ShouldShowFocusVisual());
3175-
PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(m_topNavFooterMenuRepeater.get(), ShouldShowFocusVisual());
3176-
}
3177-
}
3178-
3179-
bool NavigationView::ShouldShowFocusVisual()
3180-
{
3181-
return SelectionFollowsFocus() == winrt::NavigationViewSelectionFollowsFocus::Disabled;
3182-
}
3183-
3184-
void NavigationView::PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(winrt::ItemsRepeater const& ir, bool showFocusVisual)
3185-
{
3186-
if (ir)
3187-
{
3188-
if (auto itemsSourceView = ir.ItemsSourceView())
3189-
{
3190-
const auto numberOfItems = itemsSourceView.Count();
3191-
for (int i = 0; i < numberOfItems; i++)
3192-
{
3193-
if (auto nvib = ir.TryGetElement(i))
3194-
{
3195-
if (auto nvi = nvib.try_as<winrt::NavigationViewItem>())
3196-
{
3197-
auto nviImpl = winrt::get_self<NavigationViewItem>(nvi);
3198-
nviImpl->UseSystemFocusVisuals(showFocusVisual);
3199-
}
3200-
}
3201-
3202-
}
3203-
}
3204-
}
3205-
}
3206-
32073162
void NavigationView::InvalidateTopNavPrimaryLayout()
32083163
{
32093164
if (m_appliedTemplate && IsTopNavigationView())
@@ -3793,7 +3748,6 @@ void NavigationView::OnPropertyChanged(const winrt::DependencyPropertyChangedEve
37933748
else if (property == s_SelectionFollowsFocusProperty)
37943749
{
37953750
UpdateSingleSelectionFollowsFocusTemplateSetting();
3796-
UpdateNavigationViewUseSystemVisual();
37973751
}
37983752
else if (property == s_IsPaneToggleButtonVisibleProperty)
37993753
{

dev/NavigationView/NavigationView.h

-3
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,6 @@ class NavigationView :
166166
void UpdateVisualState(bool useTransitions = false);
167167
void UpdateVisualStateForOverflowButton();
168168
void UpdateLeftNavigationOnlyVisualState(bool useTransitions);
169-
void UpdateNavigationViewUseSystemVisual();
170-
static void PropagateShowFocusVisualToAllNavigationViewItemsInRepeater(winrt::ItemsRepeater const& ir, bool showFocusVisual);
171169
void UpdatePaneShadow();
172170
void UpdateNavigationViewItemsFactory();
173171
void SyncItemTemplates();
@@ -321,7 +319,6 @@ class NavigationView :
321319
bool ShouldPreserveNavigationViewRS3Behavior();
322320

323321
bool NeedRearrangeOfTopElementsAfterOverflowSelectionChanged(int selectedOriginalIndex);
324-
bool ShouldShowFocusVisual();
325322
void KeyboardFocusFirstItemFromItem(const winrt::NavigationViewItemBase& nvib);
326323
void KeyboardFocusLastItemFromItem(const winrt::NavigationViewItemBase& nvib);
327324
void FocusNextDownItem(const winrt::NavigationViewItem& nvi, const winrt::KeyRoutedEventArgs& args);

dev/NavigationView/NavigationView.xaml

-4
Original file line numberDiff line numberDiff line change
@@ -508,10 +508,6 @@
508508
</Setter>
509509
</Style>
510510

511-
<!--Note: Even though UseSystemFocusVisuals is set to True here in the Style, and because
512-
bindings in Styles are only evaluated once, we were unable to bring a TemplateSettings.UseSystemFocusVisuals
513-
to handle the removal of the focus rect when SelectionFollowsFocus is enabled. Therefore, that has
514-
been done in code and it's updated whenever SelectionFollowsFocus is changed.-->
515511
<Style TargetType="local:NavigationViewItem">
516512
<Setter Property="Foreground" Value="{ThemeResource NavigationViewItemForeground}" />
517513
<Setter Property="Background" Value="{ThemeResource NavigationViewItemBackground}" />

0 commit comments

Comments
 (0)