diff --git a/RetroBar/App.xaml.cs b/RetroBar/App.xaml.cs
index 76290d29..3104f1a7 100644
--- a/RetroBar/App.xaml.cs
+++ b/RetroBar/App.xaml.cs
@@ -1,17 +1,17 @@
-using System;
-using ManagedShell;
-using RetroBar.Utilities;
-using System.Windows;
+using ManagedShell;
+using ManagedShell.Common.Enums;
using ManagedShell.Common.Helpers;
+using ManagedShell.Common.Logging;
using ManagedShell.Interop;
-using Application = System.Windows.Application;
-using System.Windows.Interop;
-using System.Windows.Media;
-using ManagedShell.Common.Enums;
+using RetroBar.Utilities;
+using System;
using System.Diagnostics;
-using System.Reflection;
-using ManagedShell.Common.Logging;
using System.Linq;
+using System.Reflection;
+using System.Windows;
+using System.Windows.Interop;
+using System.Windows.Media;
+using Application = System.Windows.Application;
namespace RetroBar
{
@@ -89,6 +89,10 @@ private void Settings_PropertyChanged(object sender, System.ComponentModel.Prope
{
setTaskIconSize();
}
+ else if (e.PropertyName == nameof(Settings.SortTaskbarByProgramName))
+ {
+ RestartApp();
+ }
}
private void loadTheme()
diff --git a/RetroBar/Controls/TaskList.xaml.cs b/RetroBar/Controls/TaskList.xaml.cs
index a05ed38d..2843f375 100644
--- a/RetroBar/Controls/TaskList.xaml.cs
+++ b/RetroBar/Controls/TaskList.xaml.cs
@@ -6,6 +6,8 @@
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Data;
+using System.Collections;
namespace RetroBar.Controls
{
@@ -21,6 +23,7 @@ public partial class TaskList : UserControl
private double TaskButtonLeftMargin;
private double TaskButtonRightMargin;
private ICollectionView taskbarItems;
+ private ProgramNameTaskbarSorter programNameTaskbarSorter;
public static DependencyProperty ButtonWidthProperty = DependencyProperty.Register(nameof(ButtonWidth), typeof(double), typeof(TaskList), new PropertyMetadata(new double()));
@@ -49,6 +52,8 @@ public Taskbar Host
public TaskList()
{
InitializeComponent();
+ programNameTaskbarSorter = new ProgramNameTaskbarSorter();
+ programNameTaskbarSorter.setSortingList(Settings.Instance.TaskbarSortingFilter);
}
private void SetStyles()
@@ -85,6 +90,14 @@ private void SetTasksCollection()
{
taskbarItems.CollectionChanged += GroupedWindows_CollectionChanged;
taskbarItems.Filter = Tasks_Filter;
+
+ if (taskbarItems is ListCollectionView lcv)
+ {
+ /*lcv.CustomSort = (IComparer)(Settings.Instance.SortTaskbarByProgramName
+ ? programNameTaskbarSorter
+ : null);*/
+ lcv.CustomSort = programNameTaskbarSorter;
+ }
}
TasksList.ItemsSource = taskbarItems;
diff --git a/RetroBar/PropertiesWindow.xaml b/RetroBar/PropertiesWindow.xaml
index 27c78bfe..24d05ac2 100644
--- a/RetroBar/PropertiesWindow.xaml
+++ b/RetroBar/PropertiesWindow.xaml
@@ -376,6 +376,18 @@
IsChecked="{Binding Source={x:Static Settings:Settings.Instance}, Path=ShowEndTaskButton, UpdateSourceTrigger=PropertyChanged}">
+
+
+
+
+
+
+
+
+