|
|
|
@ -257,9 +257,7 @@ namespace Avalonia.Controls |
|
|
|
|
|
|
|
impl.LostFocus += PlatformImpl_LostFocus; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(impl.TryGetFeature<ISystemNavigationManagerImpl>() is {} systemNavigationManager) |
|
|
|
if (impl.TryGetFeature<ISystemNavigationManagerImpl>() is { } systemNavigationManager) |
|
|
|
{ |
|
|
|
systemNavigationManager.BackRequested += (_, e) => |
|
|
|
{ |
|
|
|
@ -286,14 +284,14 @@ namespace Avalonia.Controls |
|
|
|
KeyModifiers = (KeyModifiers)rawKeyEventArgs.Modifiers, |
|
|
|
Key = rawKeyEventArgs.Key, |
|
|
|
PhysicalKey = rawKeyEventArgs.PhysicalKey, |
|
|
|
KeyDeviceType= rawKeyEventArgs.KeyDeviceType, |
|
|
|
KeyDeviceType = rawKeyEventArgs.KeyDeviceType, |
|
|
|
KeySymbol = rawKeyEventArgs.KeySymbol |
|
|
|
}; |
|
|
|
|
|
|
|
backRequested = keymap.Any( key => key.Matches(keyEvent)); |
|
|
|
backRequested = keymap.Any(key => key.Matches(keyEvent)); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(e is RawPointerEventArgs pointerEventArgs) |
|
|
|
else if (e is RawPointerEventArgs pointerEventArgs) |
|
|
|
{ |
|
|
|
backRequested = pointerEventArgs.Type == RawPointerEventType.XButton1Down; |
|
|
|
} |
|
|
|
@ -602,7 +600,7 @@ namespace Avalonia.Controls |
|
|
|
private void InvalidateChildInsetsPadding() |
|
|
|
{ |
|
|
|
if (Content is Control child |
|
|
|
&& InsetsManager is {} insetsManager) |
|
|
|
&& InsetsManager is { } insetsManager) |
|
|
|
{ |
|
|
|
insetsManager.SafeAreaChanged -= InsetsManagerOnSafeAreaChanged; |
|
|
|
_insetsPaddings?.Dispose(); |
|
|
|
@ -803,11 +801,7 @@ namespace Avalonia.Controls |
|
|
|
|
|
|
|
void PlatformImpl_LostFocus() |
|
|
|
{ |
|
|
|
var focused = (Visual?)FocusManager?.GetFocusedElement(); |
|
|
|
if (focused == null) |
|
|
|
return; |
|
|
|
while (focused.VisualParent != null) |
|
|
|
focused = focused.VisualParent; |
|
|
|
var focused = TopLevel.GetTopLevel((Visual?)FocusManager?.GetFocusedElement()); |
|
|
|
|
|
|
|
if (focused == this) |
|
|
|
KeyboardDevice.Instance?.SetFocusedElement(null, NavigationMethod.Unspecified, KeyModifiers.None, false); |
|
|
|
|