Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7e1e805

Browse files
committed
Req
1 parent a85151b commit 7e1e805

File tree

6 files changed

+16
-16
lines changed

6 files changed

+16
-16
lines changed

‎src/Files.App.Controls/BreadcrumbBar/BreadcrumbBar.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using Microsoft.UI.Xaml.Automation;
5+
using Microsoft.UI.Xaml.Input;
56
using Windows.Foundation;
67

78
namespace Files.App.Controls
@@ -67,10 +68,10 @@ protected override void OnApplyTemplate()
6768
_itemsRepeater.ItemsSourceView.CollectionChanged += ItemsSourceView_CollectionChanged;
6869
}
6970

70-
internal protected virtual void RaiseItemClickedEvent(BreadcrumbBarItem item, boolisMiddleButtonPressed)
71+
internal protected virtual void RaiseItemClickedEvent(BreadcrumbBarItem item, PointerRoutedEventArgs?pointerRoutedEventArgs=null)
7172
{
7273
var index = _itemsRepeater?.GetElementIndex(item) ?? throw new ArgumentNullException($"{_itemsRepeater} is null.");
73-
var eventArgs = new BreadcrumbBarItemClickedEventArgs(item, index, item == _rootBreadcrumbBarItem, isMiddleButtonPressed);
74+
var eventArgs = new BreadcrumbBarItemClickedEventArgs(item, index, item == _rootBreadcrumbBarItem, pointerRoutedEventArgs);
7475
ItemClicked?.Invoke(this, eventArgs);
7576
}
7677

‎src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Events.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public partial class BreadcrumbBarItem
1010
{
1111
private void ItemContentButton_Click(object sender, RoutedEventArgs e)
1212
{
13-
OnItemClicked(false);
13+
//OnItemClicked();
1414
}
1515

1616
private void ItemChevronButton_Click(object sender, RoutedEventArgs e)

‎src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,12 @@ protected override void OnApplyTemplate()
4949
if (IsEllipsis || IsLastItem)
5050
VisualStateManager.GoToState(this, "ChevronCollapsed", true);
5151

52-
_itemContentButton.AddHandler(
52+
_itemContentButton.AddHandler(// Bypass IsHandled = true in the base class
5353
PointerReleasedEvent,
5454
new PointerEventHandler((s, e) =>
5555
{
56-
var pointerUpdateKind = e.GetCurrentPoint(null).Properties.PointerUpdateKind;
57-
if (pointerUpdateKind is PointerUpdateKind.MiddleButtonReleased)
58-
{
59-
OnItemClicked(true);
60-
e.Handled = true;
61-
}
56+
OnItemClicked(e);
57+
e.Handled = true;
6258
}),
6359
handledEventsToo: true);
6460

@@ -71,7 +67,7 @@ protected override void OnApplyTemplate()
7167
_itemChevronDropDownMenuFlyout.Closed += ChevronDropDownMenuFlyout_Closed;
7268
}
7369

74-
public void OnItemClicked(boolisMiddleButtonPressed)
70+
public void OnItemClicked(PointerRoutedEventArgs?pointerRoutedEventArgs=null)
7571
{
7672
if (_ownerRef is null ||
7773
!_ownerRef.TryGetTarget(out var breadcrumbBar))
@@ -89,7 +85,7 @@ public void OnItemClicked(bool isMiddleButtonPressed)
8985
{
9086
var menuFlyoutItem = new MenuFlyoutItem() { Text = text };
9187
_itemEllipsisDropDownMenuFlyout.Items.Add(menuFlyoutItem);
92-
menuFlyoutItem.Click += (sender, e) => breadcrumbBar.RaiseItemClickedEvent(item, isMiddleButtonPressed);
88+
menuFlyoutItem.Click += (sender, e) => breadcrumbBar.RaiseItemClickedEvent(item, pointerRoutedEventArgs);
9389
}
9490
}
9591

@@ -99,7 +95,7 @@ public void OnItemClicked(bool isMiddleButtonPressed)
9995
else
10096
{
10197
// Fire a click event
102-
breadcrumbBar.RaiseItemClickedEvent(this, isMiddleButtonPressed);
98+
breadcrumbBar.RaiseItemClickedEvent(this, pointerRoutedEventArgs);
10399
}
104100
}
105101

‎src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void Invoke()
5151
if (Owner is not BreadcrumbBarItem item)
5252
return;
5353

54-
item.OnItemClicked(false);
54+
item.OnItemClicked();
5555
}
5656
}
5757
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
// Copyright (c) Files Community
22
// Licensed under the MIT License.
33

4+
using Microsoft.UI.Xaml.Input;
5+
46
namespace Files.App.Controls
57
{
6-
public record class BreadcrumbBarItemClickedEventArgs(BreadcrumbBarItem Item, int Index, bool IsRootItem = false, boolIsMiddleButtonPressed = false);
8+
public record class BreadcrumbBarItemClickedEventArgs(BreadcrumbBarItem Item, int Index, bool IsRootItem = false, PointerRoutedEventArgs?PointerRoutedEventArgs = null);
79

810
public record class BreadcrumbBarItemDropDownFlyoutEventArgs(MenuFlyout Flyout, BreadcrumbBarItem? Item = null, int Index = -1, bool IsRootItem = false);
911
}

‎src/Files.App/UserControls/NavigationToolbar.xaml.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@ private async void BreadcrumbBar_ItemClicked(Controls.BreadcrumbBar sender, Cont
279279
ViewModel.PathComponents[args.Index].Path is not { } path)
280280
return;
281281

282-
await ViewModel.HandleFolderNavigationAsync(path, args.IsMiddleButtonPressed);
282+
var pointerUpdateKind = args.PointerRoutedEventArgs.GetCurrentPoint(null).Properties.PointerUpdateKind;
283+
await ViewModel.HandleFolderNavigationAsync(path, pointerUpdateKind is PointerUpdateKind.MiddleButtonReleased);
283284
}
284285

285286
private async void BreadcrumbBar_ItemDropDownFlyoutOpening(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /