in src/common/details/console/gui/controls/SpeedSearchListBoxControl.cs [116:156]
protected bool ProcessSpeedSearchKey(ConsoleKeyInfo key)
{
if (_speedSearchBox != null && key.Key == ConsoleKey.Escape)
{
_speedSearchBox.Close();
_speedSearchBox = null;
PaintWindow(Colors, $"{Border?.Substring(0, 4)}{(char)0}{Border?.Substring(5)}");
return true;
}
var tab = key.Key == ConsoleKey.Tab;
var f3 = key.Key == ConsoleKey.F3;
if (_speedSearchBox != null && (tab || f3))
{
return key.IsShift()
? SelectRowContaining(GetSpeedSearchText(), SelectedRow - 1, false, true, true, true, -1) || true
: SelectRowContaining(GetSpeedSearchText(), SelectedRow + 1, false, true, true, true, +1) || true;
}
var questionOpen = !IsSpeedSearchOpen() && key.KeyChar == '?';
if (questionOpen) return OpenSpeedSearch();
var ctrlF = !IsSpeedSearchOpen() && key.Key == ConsoleKey.F && key.IsCtrl();
if (ctrlF) return OpenSpeedSearch();
var processed = base.ProcessKey(key);
if (processed) return processed;
if (key.IsAscii())
{
OpenSpeedSearch();
_speedSearchBox!.End();
if (_speedSearchBox!.ProcessKey(key))
{
return SelectRowContaining(GetSpeedSearchText(), SelectedRow, true, true, true, true, +1);
}
}
return false;
}