[BUG] Fix not scrolled to searched item (#398), version 1.2.9.18

This commit is contained in:
Markus Hofknecht 2022-06-11 13:04:21 +02:00
parent 7afcb95f5c
commit d6093e46b6
3 changed files with 14 additions and 11 deletions

View file

@ -173,10 +173,14 @@ namespace SystemTrayMenu.Handler
ClearIsSelectedByKey(); ClearIsSelectedByKey();
} }
internal void SearchTextChanged(Menu menu) internal void SearchTextChanged(Menu menu, bool isSearchStringEmpty)
{ {
DataGridView dgv = menu.GetDataGridView(); DataGridView dgv = menu.GetDataGridView();
if (dgv.Rows.Count > 0) if (isSearchStringEmpty)
{
ClearIsSelectedByKey();
}
else if (dgv.Rows.Count > 0)
{ {
Select(dgv, 0, true); Select(dgv, 0, true);
} }

View file

@ -1511,10 +1511,10 @@ namespace SystemTrayMenu.Business
keyboardInput.SearchTextChanging(); keyboardInput.SearchTextChanging();
} }
private void Menu_SearchTextChanged(object sender, EventArgs e) private void Menu_SearchTextChanged(object sender, bool isSearchStringEmpty)
{ {
Menu menu = (Menu)sender; Menu menu = (Menu)sender;
keyboardInput.SearchTextChanged(menu); keyboardInput.SearchTextChanged(menu, isSearchStringEmpty);
AdjustMenusSizeAndLocation(); AdjustMenusSizeAndLocation();
searchTextChanging = false; searchTextChanging = false;

View file

@ -191,7 +191,7 @@ namespace SystemTrayMenu.UserInterface
internal event EventHandlerEmpty SearchTextChanging; internal event EventHandlerEmpty SearchTextChanging;
internal event EventHandler SearchTextChanged; internal event EventHandler<bool> SearchTextChanged;
internal event EventHandlerEmpty UserDragsMenu; internal event EventHandlerEmpty UserDragsMenu;
@ -828,16 +828,15 @@ namespace SystemTrayMenu.UserInterface
.Replace("%", " ") .Replace("%", " ")
.Replace("*", " "); .Replace("*", " ");
// Replace special characters string searchStringReplaceSpecialCharacters = new(searchString);
string tmp = new(searchString);
searchString = string.Empty; searchString = string.Empty;
foreach (char ch in tmp) foreach (char character in searchStringReplaceSpecialCharacters)
{ {
searchString += ch switch searchString += character switch
{ {
'[' => "[[]", '[' => "[[]",
']' => "[]]", ']' => "[]]",
_ => ch, _ => character,
}; };
} }
@ -957,7 +956,7 @@ namespace SystemTrayMenu.UserInterface
SetCounts(foldersCount, filesCount); SetCounts(foldersCount, filesCount);
SearchTextChanged.Invoke(this, null); SearchTextChanged.Invoke(this, isSearchStringEmpty);
if (anyIconNotUpdated) if (anyIconNotUpdated)
{ {