Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
998a930
fix accelerator behavior for menu items and labels
hdocsek Oct 16, 2024
2951613
Merge branch 'AvaloniaUI:master' into fixes/accesskey
StefanKoell Oct 16, 2024
0cfbe10
add elements with matching accelerator to test cycling in sub menus
hdocsek Oct 16, 2024
34b846d
Merge branch 'master' into fixes/accesskey
hdocsek Oct 21, 2024
5fd502d
Add AccessKeyHandler tests for accelerators with more than one match
hdocsek Oct 21, 2024
15cb10c
Merge branch 'master' into fixes/accesskey
hdocsek Oct 21, 2024
72fe47d
Merge branch 'AvaloniaUI:master' into fixes/accesskey
hdocsek Oct 24, 2024
c9f463b
Merge branch 'AvaloniaUI:master' into fixes/accesskey
hdocsek Oct 25, 2024
0b1c597
Implement accelerator behavior based on WPF handling
hdocsek Oct 25, 2024
f43307c
Remove commented code
hdocsek Oct 25, 2024
5d5c532
Remove OnAccessKey override => handled by DefaultMenuInteractionHandler
hdocsek Oct 25, 2024
3289205
remove obsolete test
hdocsek Oct 25, 2024
dd94c1a
Merge branch 'AvaloniaUI:master' into fixes/accesskey
hdocsek Oct 28, 2024
e7d9b6e
handle OnAccessKeyPressed for selected tab item
hdocsek Oct 28, 2024
0b19c68
fix unit tests
hdocsek Oct 28, 2024
e4eb00d
use AccessKeyEvent instead of AccessKeyPressedEvent in unit tests
hdocsek Oct 28, 2024
64cf5fb
navigate menu with and without ALT key
hdocsek Oct 30, 2024
6b43064
Merge branch 'AvaloniaUI:master' into fixes/accesskey
hdocsek Oct 30, 2024
09d795c
Merge branch 'AvaloniaUI:master' into fixes/accesskey
hdocsek Nov 3, 2024
b2df891
Revert formatting changes in Tests
hdocsek Oct 31, 2024
c635484
Fix AccessKeyHandler comments
hdocsek Oct 31, 2024
47e16ed
move private types to bottom
hdocsek Oct 31, 2024
eed2e4a
Remove lock statements, optimize removal of AccessKeyRegistrations
hdocsek Oct 31, 2024
080a86b
remove call to Dispatcher.UIThread.Post
hdocsek Oct 31, 2024
813775c
simplifiy AccessKeyHandler.SortByHierarchy
hdocsek Nov 3, 2024
7fe5a69
remove unnecessary method AccessKeyHandler.GetTargetsForSender
hdocsek Nov 3, 2024
00ed8be
regenerate API suppression file
hdocsek Nov 3, 2024
d683fe0
revert unneeded changes in MenuPage.axaml
hdocsek Nov 4, 2024
36b7e77
correct formatting changes
hdocsek Nov 4, 2024
dac7abf
Merge branch 'master' into fixes/accesskey
hdocsek Nov 4, 2024
fcd89b3
Merge branch 'master' into fixes/accesskey
hdocsek Nov 5, 2024
beb493b
do not sort by hierarchy if too few targets
hdocsek Nov 5, 2024
474d02e
make AccessKeyEventArgs internal
hdocsek Nov 5, 2024
2645a0f
make AccessKeyPressedEventArgs internal
hdocsek Nov 5, 2024
ff8768c
Merge branch 'master' into fixes/accesskey
hdocsek Nov 5, 2024
bf07d71
Merge branch 'master' into fixes/accesskey
hdocsek Nov 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions api/Avalonia.nupkg.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,10 @@
<Left>baseline/netstandard2.0/Avalonia.Controls.dll</Left>
<Right>target/netstandard2.0/Avalonia.Controls.dll</Right>
</Suppression>
<Suppression>
<DiagnosticId>CP0012</DiagnosticId>
<Target>M:Avalonia.Controls.Button.OnAccessKey(Avalonia.Interactivity.RoutedEventArgs)</Target>
<Left>baseline/netstandard2.0/Avalonia.Controls.dll</Left>
<Right>target/netstandard2.0/Avalonia.Controls.dll</Right>
</Suppression>
</Suppressions>
3 changes: 3 additions & 0 deletions samples/ControlCatalog/MainView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
<TabItem Header="Composition">
<pages:CompositionPage />
</TabItem>
<TabItem Header="Accelerator">
<pages:AcceleratorPage />
</TabItem>
<TabItem Header="Acrylic">
<pages:AcrylicPage />
</TabItem>
Expand Down
115 changes: 115 additions & 0 deletions samples/ControlCatalog/Pages/AcceleratorPage.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.AcceleratorPage">
<StackPanel Orientation="Vertical" Spacing="4">

<WrapPanel HorizontalAlignment="Left">
<StackPanel>
<Menu>
<MenuItem Header="_First">
<MenuItem Header="Standard _Menu Item" InputGesture="Ctrl+A" />
<MenuItem Header="_Disabled Menu Item" IsEnabled="False" InputGesture="Ctrl+D" />
<Separator />
<MenuItem Header="Menu with Sub _Menu">
<MenuItem Header="Submenu _1" />
<MenuItem Header="Submenu _2 with Submenu">
<MenuItem Header="Submenu Level 2" />
</MenuItem>
<MenuItem Header="Submenu _3 with Submenu Disabled" IsEnabled="False">
<MenuItem Header="Submenu Level 2" />
</MenuItem>
</MenuItem>
<MenuItem Header="Menu Item with _Icon" InputGesture="Ctrl+Shift+B">
<MenuItem.Icon>
<Image Source="/Assets/github_icon.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Menu Item with _Checkbox" ToggleType="CheckBox" />
</MenuItem>
<MenuItem Header="_Second">
<MenuItem Header="Second _Menu Item" />
<MenuItem IsChecked="True" Header="Second _Menu toggle item" ToggleType="CheckBox" />
<Separator />
<MenuItem GroupName="A" Header="Radio 1 - group" ToggleType="Radio" />
<MenuItem IsChecked="True" GroupName="A" Header="Radio 2 - group" ToggleType="Radio" />
<MenuItem GroupName="A" Header="Radio 3 - group" ToggleType="Radio">
<MenuItem Header="Radio 4 - group" ToggleType="Radio" GroupName="A" />
<MenuItem Header="Radio 5 - group" ToggleType="Radio" GroupName="A" />
</MenuItem>
<Separator />
<MenuItem Header="Radio 1" ToggleType="Radio" />
<MenuItem IsChecked="True" Header="Radio 2" ToggleType="Radio" />
<MenuItem Header="Radio 3" ToggleType="Radio">
<MenuItem Header="Radio 4" ToggleType="Radio" />
<MenuItem Header="Radio 5" ToggleType="Radio" />
</MenuItem>
</MenuItem>
<MenuItem Header="Thir_d">
<MenuItem Header="About"/>
<MenuItem Header="_Child">
<MenuItem Header="_Grandchild"/>
</MenuItem>
</MenuItem>
</Menu>
</StackPanel>

</WrapPanel>

<StackPanel Spacing="10">
<TextBlock Classes="h2">Accelerator Support</TextBlock>

<TabControl Margin="10" BorderBrush="Gray" BorderThickness="1">
<TabItem Header="_Tab 1">
<StackPanel>
<TextBlock Margin="5">This is tab 1 content</TextBlock>
<Label Name="Tab1Label1" Target="Tab1TextBox1">_Label Tab1Label1</Label>
<TextBox Name="Tab1TextBox1" Margin="5">This is tab 1 content</TextBox>
<Label Name="Tab1Label2" Target="Tab1TextBox2">Label _Tab1Label2</Label>
<TextBox Name="Tab1TextBox2" Margin="5">This is tab 1 content</TextBox>
</StackPanel>

</TabItem>
<TabItem Header="T_ab 2">
<TextBlock Margin="5">This is tab 2 content</TextBlock>
</TabItem>
<TabItem Header="_Tab 3">

</TabItem>
<TabItem Header="_Tab 4">
<TextBlock Margin="5">This is tab 4 content</TextBlock>
</TabItem>
<TabItem Header="_Fab 5">
<TextBlock Margin="5">This is fab 5 content</TextBlock>
</TabItem>
</TabControl>
</StackPanel>


<StackPanel Spacing="10">
<Label Name="Label0">Label with Ac_celerator 'C' and no Target</Label>
<TextBox Name="TextBox0" Text="Some Text"></TextBox>

<Label Name="Label1" Target="TextBox1">_Label with Accelerator 'L'</Label>
<TextBox Name="TextBox1" Text="Some Text"></TextBox>

<Label Name="Label2" Target="TextBox2">La_bel with Accelerator 'B'</Label>
<TextBox Name="TextBox2" Text="Some Text"></TextBox>

<Label Name="Label3" Target="TextBox3">L_abel with Accelerator 'A'</Label>
<TextBox Name="TextBox3" Text="Some Text"></TextBox>

<Label Name="Label4" Target="TextBox4">La_bel with Accelerator 'B'</Label>
<TextBox Name="TextBox4" Text="Some Text"></TextBox>

<Label Name="Label5" Target="TextBox5">_Flabel with Accelerator 'F' (Same as in Menu > File)</Label>
<TextBox Name="TextBox5" Text="Some Text"></TextBox>

</StackPanel>

<StackPanel Spacing="10" Orientation="Horizontal">
<Button Name="Button1">_Button 1</Button>
<Button Name="Button2">_Button 2</Button>
<Button Name="Button3">_Button 3</Button>
</StackPanel>
</StackPanel>
</UserControl>
18 changes: 18 additions & 0 deletions samples/ControlCatalog/Pages/AcceleratorPage.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;

namespace ControlCatalog.Pages
{
public class AcceleratorPage : UserControl
{
public AcceleratorPage()
{
this.InitializeComponent();
}

private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}
Loading