Browse Source

Merge pull request #1046 from AvaloniaUI/fixes/566-set-handled-on-command-execution

Set e.Handled on command execution.
repros/content-presenter-regression
danwalmsley 9 years ago
committed by GitHub
parent
commit
51fb646faf
  1. 6
      src/Avalonia.Controls/Button.cs
  2. 2
      src/Avalonia.Controls/Menu.cs
  3. 11
      src/Avalonia.Controls/MenuItem.cs
  4. 4
      src/Avalonia.Styling/Styling/Style.cs

6
src/Avalonia.Controls/Button.cs

@ -207,7 +207,11 @@ namespace Avalonia.Controls
/// <param name="e">The event args.</param>
protected virtual void OnClick(RoutedEventArgs e)
{
Command?.Execute(CommandParameter);
if (Command != null)
{
Command.Execute(CommandParameter);
e.Handled = true;
}
}
/// <inheritdoc/>

2
src/Avalonia.Controls/Menu.cs

@ -47,7 +47,7 @@ namespace Avalonia.Controls
static Menu()
{
ItemsPanelProperty.OverrideDefaultValue(typeof(Menu), DefaultPanel);
MenuItem.ClickEvent.AddClassHandler<Menu>(x => x.OnMenuClick);
MenuItem.ClickEvent.AddClassHandler<Menu>(x => x.OnMenuClick, handledEventsToo: true);
MenuItem.SubmenuOpenedEvent.AddClassHandler<Menu>(x => x.OnSubmenuOpened);
}

11
src/Avalonia.Controls/MenuItem.cs

@ -102,6 +102,11 @@ namespace Avalonia.Controls
AccessKeyHandler.AccessKeyPressedEvent.AddClassHandler<MenuItem>(x => x.AccessKeyPressed);
}
public MenuItem()
{
}
/// <summary>
/// Occurs when a <see cref="MenuItem"/> without a submenu is clicked.
/// </summary>
@ -192,7 +197,11 @@ namespace Avalonia.Controls
/// <param name="e">The click event args.</param>
protected virtual void OnClick(RoutedEventArgs e)
{
Command?.Execute(CommandParameter);
if (Command != null)
{
Command.Execute(CommandParameter);
e.Handled = true;
}
}
/// <summary>

4
src/Avalonia.Styling/Styling/Style.cs

@ -61,12 +61,12 @@ namespace Avalonia.Styling
}
/// <summary>
/// Gets or sets style's selector.
/// Gets or sets the style's selector.
/// </summary>
public Selector Selector { get; set; }
/// <summary>
/// Gets or sets style's setters.
/// Gets or sets the style's setters.
/// </summary>
[Content]
public IEnumerable<ISetter> Setters { get; set; } = new List<ISetter>();

Loading…
Cancel
Save