From 0f0aff468279662f1ca87af8a64e4fe7b1302a8c Mon Sep 17 00:00:00 2001 From: Markus Hofknecht Date: Sat, 6 Jul 2019 16:47:08 +0200 Subject: [PATCH] https://github.com/Hofknecht/SystemTrayMenu/issues/2 --- Properties/AssemblyInfo.cs | 4 ++-- SystemTrayMenuHandler.cs | 33 +++++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index d8a700f..ad2420e 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.9.1.235")] -[assembly: AssemblyFileVersion("0.9.1.235")] +[assembly: AssemblyVersion("0.9.1.236")] +[assembly: AssemblyFileVersion("0.9.1.236")] diff --git a/SystemTrayMenuHandler.cs b/SystemTrayMenuHandler.cs index fe195b2..d889e05 100644 --- a/SystemTrayMenuHandler.cs +++ b/SystemTrayMenuHandler.cs @@ -934,14 +934,31 @@ namespace SystemTrayMenu MenusFadeOut(); break; default: - if (!string.IsNullOrEmpty(keyInput) && - (SelectMatched(dgv, iRowKey, keyInput) || - SelectMatched(dgv, 0, keyInput))) - { - FadeInIfNeeded(); - CheckMenuOpenerStop(iMenuBefore, iRowBefore); - CheckMenuOpenerStart(dgv, iRowKey); - toClear = true; + if (!string.IsNullOrEmpty(keyInput)) + { + if (SelectMatched(dgv, iRowKey, keyInput) || + SelectMatched(dgv, 0, keyInput)) + { + FadeInIfNeeded(); + CheckMenuOpenerStop(iMenuBefore, iRowBefore); + CheckMenuOpenerStart(dgv, iRowKey); + toClear = true; + } + else if (isStillSelected) + { + iRowKey = iRowBefore - 1; + if (SelectMatched(dgv, iRowKey, keyInput) || + SelectMatched(dgv, 0, keyInput)) + { + FadeInIfNeeded(); + CheckMenuOpenerStop(iMenuBefore, iRowBefore); + CheckMenuOpenerStart(dgv, iRowKey); + } + else + { + iRowKey = iRowBefore; + } + } } break; }