From 43e728f1de5c5195de12986345d1a7d963c48951 Mon Sep 17 00:00:00 2001 From: Blacktempel <6657796+Blacktempel@users.noreply.github.com> Date: Sun, 9 Nov 2025 13:30:30 +0100 Subject: [PATCH] Fix Nodes auto-closing right after expanding via Right key. (#2021) Fix Nodes not saving Expanded when opening or closing via Left and Right key. --- LibreHardwareMonitor/UI/MainForm.Designer.cs | 1 + LibreHardwareMonitor/UI/MainForm.cs | 24 ++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/LibreHardwareMonitor/UI/MainForm.Designer.cs b/LibreHardwareMonitor/UI/MainForm.Designer.cs index fe8bd2b..5e20e61 100644 --- a/LibreHardwareMonitor/UI/MainForm.Designer.cs +++ b/LibreHardwareMonitor/UI/MainForm.Designer.cs @@ -1077,6 +1077,7 @@ namespace LibreHardwareMonitor.UI this.treeView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.TreeView_MouseMove); this.treeView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TreeView_MouseUp); this.treeView.SizeChanged += new System.EventHandler(this.TreeView_SizeChanged); + this.treeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeView_KeyDown); // // batteryMenuItem // diff --git a/LibreHardwareMonitor/UI/MainForm.cs b/LibreHardwareMonitor/UI/MainForm.cs index 3990d41..5c3df5d 100644 --- a/LibreHardwareMonitor/UI/MainForm.cs +++ b/LibreHardwareMonitor/UI/MainForm.cs @@ -937,8 +937,6 @@ public sealed partial class MainForm : Form if (!backgroundUpdater.IsBusy) backgroundUpdater.RunWorkerAsync(); - - RestoreCollapsedNodeState(treeView); } private void SaveConfiguration() @@ -1360,6 +1358,28 @@ public sealed partial class MainForm : Form treeView.Columns[0].Width = newWidth; } + private void TreeView_KeyDown(object sender, KeyEventArgs e) + { + if (treeView.SelectedNode != null) + { + switch (e.KeyCode) + { + case Keys.Right: + if (treeView.SelectedNode.Tag is IExpandPersistNode expandPersistNodeR) + { + expandPersistNodeR.Expanded = true; + } + return; + case Keys.Left: + if (treeView.SelectedNode.Tag is IExpandPersistNode expandPersistNodeL) + { + expandPersistNodeL.Expanded = false; + } + return; + } + } + } + private void TreeView_ColumnWidthChanged(TreeColumn column) { int index = treeView.Columns.IndexOf(column);