1
0
Эх сурвалжийг харах

Merge pull request #8655 from AvaloniaUI/use-correct-toggleModifier-for-treeView-on-macOS-with-multiselection

Use correct ToggleModifier in TreeView multiselection on MacOS
Tako 3 жил өмнө
parent
commit
2f89bf050a

+ 1 - 1
src/Avalonia.Controls/TreeView.cs

@@ -529,7 +529,7 @@ namespace Avalonia.Controls
                         e.Source,
                         true,
                         e.KeyModifiers.HasAllFlags(KeyModifiers.Shift),
-                        e.KeyModifiers.HasAllFlags(KeyModifiers.Control),
+                        e.KeyModifiers.HasAllFlags(AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>().CommandModifiers),
                         point.Properties.IsRightButtonPressed);
                 }
             }

+ 21 - 17
tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

@@ -18,6 +18,7 @@ using Avalonia.LogicalTree;
 using Avalonia.Styling;
 using Avalonia.UnitTests;
 using JetBrains.Annotations;
+using Moq;
 using Xunit;
 
 namespace Avalonia.Controls.UnitTests
@@ -885,28 +886,31 @@ namespace Avalonia.Controls.UnitTests
         [Fact]
         public void Right_Click_On_SelectedItem_Should_Not_Clear_Existing_Selection()
         {
-            var tree = CreateTestTreeData();
-            var target = new TreeView
+            using (UnitTestApplication.Start())
             {
-                Template = CreateTreeViewTemplate(),
-                Items = tree,
-                SelectionMode = SelectionMode.Multiple,
-            };
-
-            var visualRoot = new TestRoot();
-            visualRoot.Child = target;
+                var tree = CreateTestTreeData();
+                var target = new TreeView
+                {
+                    Template = CreateTreeViewTemplate(),
+                    Items = tree,
+                    SelectionMode = SelectionMode.Multiple,
+                };
+                AvaloniaLocator.CurrentMutable.Bind<PlatformHotkeyConfiguration>().ToConstant(new Mock<PlatformHotkeyConfiguration>().Object);
+                var visualRoot = new TestRoot();
+                visualRoot.Child = target;
 
-            CreateNodeDataTemplate(target);
-            ApplyTemplates(target);
-            target.ExpandSubTree((TreeViewItem)target.Presenter.Panel.Children[0]);
-            target.SelectAll();
+                CreateNodeDataTemplate(target);
+                ApplyTemplates(target);
+                target.ExpandSubTree((TreeViewItem)target.Presenter.Panel.Children[0]);
+                target.SelectAll();
 
-            AssertChildrenSelected(target, tree[0]);
-            Assert.Equal(5, target.SelectedItems.Count);
+                AssertChildrenSelected(target, tree[0]);
+                Assert.Equal(5, target.SelectedItems.Count);
 
-            _mouse.Click((Interactive)target.Presenter.Panel.Children[0], MouseButton.Right);
+                _mouse.Click((Interactive)target.Presenter.Panel.Children[0], MouseButton.Right);
 
-            Assert.Equal(5, target.SelectedItems.Count);
+                Assert.Equal(5, target.SelectedItems.Count);
+            }
         }
 
         [Fact]