diff --git a/UndertaleModTool/MainWindow.xaml b/UndertaleModTool/MainWindow.xaml
index f81a1f37a..d5841a941 100644
--- a/UndertaleModTool/MainWindow.xaml
+++ b/UndertaleModTool/MainWindow.xaml
@@ -178,9 +178,12 @@
-
+
diff --git a/UndertaleModTool/MainWindow.xaml.cs b/UndertaleModTool/MainWindow.xaml.cs
index fd810c783..41d60ffd1 100644
--- a/UndertaleModTool/MainWindow.xaml.cs
+++ b/UndertaleModTool/MainWindow.xaml.cs
@@ -1531,7 +1531,7 @@ private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEv
{
if (e.NewValue is TreeViewItem)
{
- string item = (e.NewValue as TreeViewItem)?.Header?.ToString();
+ string item = (e.NewValue as TreeViewItem).Header?.ToString();
if (item == "Data")
{
@@ -1567,7 +1567,29 @@ private void MainTree_MouseDoubleClick(object sender, MouseButtonEventArgs e)
OpenInTab(Highlighted);
}
+ private void MainTree_MouseDown(object sender, MouseButtonEventArgs e)
+ {
+ if (e.ButtonState == MouseButtonState.Pressed && e.ChangedButton == System.Windows.Input.MouseButton.Middle)
+ {
+ DependencyObject obj = MainTree.InputHitTest(e.GetPosition(MainTree)) as DependencyObject;
+ if (obj is not TextBlock)
+ return;
+
+ TreeViewItem item = GetNearestParent(obj);
+ if (item is null)
+ return;
+
+ item.IsSelected = true;
+ if (item.DataContext is not UndertaleResource)
+ return;
+
+ if (Highlighted is UndertaleRoom room && Selected is not UndertaleRoom)
+ UndertaleRoomEditor.CheckAndRearrangeLayers(room);
+
+ OpenInTab(Highlighted, true);
+ }
+ }
private void MainTree_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)