InputRoll - fix behavior of up/down arrow keys

This commit is contained in:
adelikat 2019-11-26 11:27:55 -06:00
parent 44a2565f5c
commit a17584a319
1 changed files with 20 additions and 6 deletions

View File

@ -1382,18 +1382,32 @@ namespace BizHawk.Client.EmuHawk
} }
else if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Up) // Up else if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Up) // Up
{ {
if (FirstVisibleRow > 0) if (SelectedRows.Any())
{ {
FirstVisibleRow--; var selectedRow = SelectedRows.First();
Refresh(); if (selectedRow > 0)
{
var targetSelectedRow = selectedRow - 1;
DeselectAll();
SelectRow(targetSelectedRow, true);
ScrollToIndex(targetSelectedRow);
Refresh();
}
} }
} }
else if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Down) // Down else if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Down) // Down
{ {
if (FirstVisibleRow < RowCount - 1) if (SelectedRows.Any())
{ {
FirstVisibleRow++; var selectedRow = SelectedRows.First();
Refresh(); if (selectedRow < RowCount - 1)
{
var targetSelectedRow = selectedRow + 1;
DeselectAll();
SelectRow(targetSelectedRow, true);
ScrollToIndex(targetSelectedRow);
Refresh();
}
} }
} }
// Selection courser // Selection courser