From 6bbe47c9172071db38aa6f773b7ce0699721ce74 Mon Sep 17 00:00:00 2001 From: SGrahambo <70293810+SGrahambo@users.noreply.github.com> Date: Thu, 30 Nov 2023 08:38:25 -0800 Subject: [PATCH] Feature: Added support for cycling tabs via mouse scrolling (#14123) --- src/Files.App/UserControls/TabBar/TabBar.xaml | 1 + .../UserControls/TabBar/TabBar.xaml.cs | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index efdd15677cf8..901ab856fca3 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -74,6 +74,7 @@ CanReorderTabs="{x:Bind AllowTabsDrag, Mode=OneWay}" DragLeave="TabView_DragLeave" IsAddTabButtonVisible="False" + PointerWheelChanged="TabView_PointerWheelChanged" SelectedIndex="{x:Bind root:App.AppModel.TabStripSelectedIndex, Mode=TwoWay}" SelectionChanged="TabView_SelectionChanged" TabCloseRequested="TabView_TabCloseRequested" diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index cb63c21303ec..ce45d03dda15 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -266,6 +266,26 @@ private async void TabView_TabDroppedOutside(TabView sender, TabViewTabDroppedOu (args.Item as TabBarItem)?.Unload(); } + private void TabView_PointerWheelChanged(object sender, PointerRoutedEventArgs e) + { + var delta = e.GetCurrentPoint(null).Properties.MouseWheelDelta; + + if (delta > 0) + { + // Scroll up, select the next tab + if (HorizontalTabView.SelectedIndex < HorizontalTabView.TabItems.Count - 1) + HorizontalTabView.SelectedIndex++; + } + else + { + // Scroll down, select the previous tab + if (HorizontalTabView.SelectedIndex > 0) + HorizontalTabView.SelectedIndex--; + } + + e.Handled = true; + } + private void TabItemContextMenu_Opening(object sender, object e) { MenuItemMoveTabToNewWindow.IsEnabled = Items.Count > 1;