fix a regression in keyboard manager (#1824)
This commit is contained in:
parent
8e7ac87f01
commit
e9a974d1dd
@ -575,11 +575,17 @@ private static void OnVirtualKeyControlShiftChordPropertyChanged(DependencyObjec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool CanNavigateModeByShortcut(MUXC.NavigationView navView, MUXC.NavigationViewItem nvi
|
private static bool CanNavigateModeByShortcut(MUXC.NavigationView navView, object nvi
|
||||||
, ApplicationViewModel vm, ViewMode toMode)
|
, ApplicationViewModel vm, ViewMode toMode)
|
||||||
{
|
{
|
||||||
return nvi != null && nvi.IsEnabled && navView.Visibility == Visibility.Visible
|
if(nvi != null && nvi is NavCategory navCategory)
|
||||||
&& !vm.IsAlwaysOnTop && NavCategoryStates.IsValidViewMode(toMode);
|
{
|
||||||
|
return navCategory.IsEnabled
|
||||||
|
&& navView.Visibility == Visibility.Visible
|
||||||
|
&& !vm.IsAlwaysOnTop
|
||||||
|
&& NavCategoryStates.IsValidViewMode(toMode);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void NavigateModeByShortcut(bool controlKeyPressed, bool shiftKeyPressed, bool altPressed
|
private static void NavigateModeByShortcut(bool controlKeyPressed, bool shiftKeyPressed, bool altPressed
|
||||||
@ -596,14 +602,15 @@ private static void NavigateModeByShortcut(bool controlKeyPressed, bool shiftKey
|
|||||||
{
|
{
|
||||||
var navView = (MUXC.NavigationView)item;
|
var navView = (MUXC.NavigationView)item;
|
||||||
|
|
||||||
var menuItems = ((ObservableCollection<object>)navView.MenuItemsSource);
|
var menuItems = ((List<object>)navView.MenuItemsSource);
|
||||||
if (menuItems != null)
|
if (menuItems != null)
|
||||||
{
|
{
|
||||||
var vm = (navView.DataContext as ApplicationViewModel);
|
var vm = (navView.DataContext as ApplicationViewModel);
|
||||||
if (null != vm)
|
if (null != vm)
|
||||||
{
|
{
|
||||||
ViewMode realToMode = toMode.HasValue ? toMode.Value : NavCategoryStates.GetViewModeForVirtualKey(((MyVirtualKey)key));
|
ViewMode realToMode = toMode.HasValue ? toMode.Value : NavCategoryStates.GetViewModeForVirtualKey(((MyVirtualKey)key));
|
||||||
var nvi = (menuItems[NavCategoryStates.GetFlatIndex(realToMode)] as MUXC.NavigationViewItem);
|
|
||||||
|
var nvi = menuItems[NavCategoryStates.GetFlatIndex(realToMode)];
|
||||||
if (CanNavigateModeByShortcut(navView, nvi, vm, realToMode))
|
if (CanNavigateModeByShortcut(navView, nvi, vm, realToMode))
|
||||||
{
|
{
|
||||||
vm.Mode = realToMode;
|
vm.Mode = realToMode;
|
||||||
|
Loading…
Reference in New Issue
Block a user