Skip to content

Commit

Permalink
Merge pull request #5949 from MarchingCube/ux-treepage-highlight
Browse files Browse the repository at this point in the history
Fix devtools selection highlight requiring direct hover over the control
  • Loading branch information
Dan Walmsley committed May 19, 2021
2 parents 952017e + 75242bb commit 59b5d9b
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<TreeView.Styles>
<Style Selector="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="Background" Value="Transparent" />
</Style>
</TreeView.Styles>
</TreeView>
Expand Down
19 changes: 14 additions & 5 deletions src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Diagnostics;
using System.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Generators;
Expand All @@ -6,6 +7,7 @@
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.VisualTree;

namespace Avalonia.Diagnostics.Views
{
Expand Down Expand Up @@ -100,12 +102,19 @@ private void TreeViewItemMaterialized(object sender, ItemContainerEventArgs e)
private void TreeViewItemTemplateApplied(object sender, TemplateAppliedEventArgs e)
{
var item = (TreeViewItem)sender;
var headerPresenter = item.HeaderPresenter;
headerPresenter.ApplyTemplate();

var header = headerPresenter.Child;
header.PointerEnter += AddAdorner;
header.PointerLeave += RemoveAdorner;
// This depends on the default tree item template.
// We want to handle events in the item header but exclude events coming from children.
var header = item.FindDescendantOfType<Border>();

Debug.Assert(header != null);

if (header != null)
{
header.PointerEnter += AddAdorner;
header.PointerLeave += RemoveAdorner;
}

item.TemplateApplied -= TreeViewItemTemplateApplied;
}
}
Expand Down

0 comments on commit 59b5d9b

Please sign in to comment.