From b377c1aaf678f574988938a091b1330abb2b0a4c Mon Sep 17 00:00:00 2001 From: Peter Kirmeier Date: Sun, 13 Aug 2023 22:26:01 +0200 Subject: [PATCH] Remove obsolete sanity check to improve performance significantly e.g. when search starts --- DataClasses/RowData.cs | 52 +++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/DataClasses/RowData.cs b/DataClasses/RowData.cs index 7ea3759..d2db6b9 100644 --- a/DataClasses/RowData.cs +++ b/DataClasses/RowData.cs @@ -284,39 +284,35 @@ namespace SystemTrayMenu.DataClasses internal void OpenSubMenu() { - // TODO: always true? maybe only when cached in WaitToLoadMenu or keyboardInput? - if (((List?)Owner?.GetDataGridView().Items.SourceCollection)?.Contains(this) ?? false) + Menu? openSubMenu = Owner?.SubMenu; + + // only re-open when the menu is not already open + if (SubMenu != null && SubMenu == openSubMenu) { - Menu? openSubMenu = Owner.SubMenu; - - // only re-open when the menu is not already open - if (SubMenu != null && SubMenu == openSubMenu) + // Close second level sub menus when already opened + openSubMenu.SelectedItem = null; + if (openSubMenu.SubMenu != null) { - // Close second level sub menus when already opened - openSubMenu.SelectedItem = null; - if (openSubMenu.SubMenu != null) - { - openSubMenu.SubMenu.HideWithFade(true); - openSubMenu.RefreshSelection(); - } + openSubMenu.SubMenu.HideWithFade(true); + openSubMenu.RefreshSelection(); } - else + } + else + { + // In case another menu exists, close it + if (openSubMenu != null) { - // In case another menu exists, close it - if (openSubMenu != null) - { - // Give the opening window focus - // if closing window lose focus, no window would have focus any more - Owner.Activate(); - Owner.FocusTextBox(); - openSubMenu.HideWithFade(true); - Owner.RefreshSelection(); - } + // Give the opening window focus + // if closing window lose focus, no window would have focus any more + Owner?.Activate(); + Owner?.FocusTextBox(); + openSubMenu.HideWithFade(true); + Owner?.RefreshSelection(); + } - if (IsPointingToFolder) - { - Owner.RiseStartLoadSubMenu(this); - } + if (IsPointingToFolder) + { + Owner?.RiseStartLoadSubMenu(this); } } }