|
@@ -211,8 +211,8 @@ namespace Avalonia.Input
|
|
|
{
|
|
|
IsEnabledProperty.Changed.Subscribe(IsEnabledChanged);
|
|
|
|
|
|
- GotFocusEvent.AddClassHandler<InputElement>((x, e) => x.OnGotFocus(e));
|
|
|
- LostFocusEvent.AddClassHandler<InputElement>((x, e) => x.OnLostFocus(e));
|
|
|
+ GotFocusEvent.AddClassHandler<InputElement>((x, e) => x.OnGotFocusCore(e));
|
|
|
+ LostFocusEvent.AddClassHandler<InputElement>((x, e) => x.OnLostFocusCore(e));
|
|
|
KeyDownEvent.AddClassHandler<InputElement>((x, e) => x.OnKeyDown(e));
|
|
|
KeyUpEvent.AddClassHandler<InputElement>((x, e) => x.OnKeyUp(e));
|
|
|
TextInputEvent.AddClassHandler<InputElement>((x, e) => x.OnTextInput(e));
|
|
@@ -535,31 +535,41 @@ namespace Avalonia.Input
|
|
|
UpdateIsEffectivelyEnabled();
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// Called before the <see cref="GotFocus"/> event occurs.
|
|
|
- /// </summary>
|
|
|
- /// <param name="e">The event args.</param>
|
|
|
- protected virtual void OnGotFocus(GotFocusEventArgs e)
|
|
|
+ private void OnGotFocusCore(GotFocusEventArgs e)
|
|
|
{
|
|
|
var isFocused = e.Source == this;
|
|
|
_isFocusVisible = isFocused && (e.NavigationMethod == NavigationMethod.Directional || e.NavigationMethod == NavigationMethod.Tab);
|
|
|
IsFocused = isFocused;
|
|
|
+ OnGotFocus(e);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Called before the <see cref="LostFocus"/> event occurs.
|
|
|
+ /// Invoked when an unhandled <see cref="GotFocusEvent"/> reaches an element in its
|
|
|
+ /// route that is derived from this class. Implement this method to add class handling
|
|
|
+ /// for this event.
|
|
|
/// </summary>
|
|
|
- /// <param name="e">The event args.</param>
|
|
|
- protected virtual void OnLostFocus(RoutedEventArgs e)
|
|
|
+ /// <param name="e">Data about the event.</param>
|
|
|
+ protected virtual void OnGotFocus(GotFocusEventArgs e)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ private void OnLostFocusCore(RoutedEventArgs e)
|
|
|
{
|
|
|
_isFocusVisible = false;
|
|
|
IsFocused = false;
|
|
|
+ OnLostFocus(e);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Called before the <see cref="KeyDown"/> event occurs.
|
|
|
+ /// Invoked when an unhandled <see cref="LostFocusEvent"/> reaches an element in its
|
|
|
+ /// route that is derived from this class. Implement this method to add class handling
|
|
|
+ /// for this event.
|
|
|
/// </summary>
|
|
|
- /// <param name="e">The event args.</param>
|
|
|
+ /// <param name="e">Data about the event.</param>
|
|
|
+ protected virtual void OnLostFocus(RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Invoked when an unhandled <see cref="KeyDownEvent"/> reaches an element in its
|
|
|
/// route that is derived from this class. Implement this method to add class handling
|