From a17584a31955b355d1c3211a245e6f8ccc87bd38 Mon Sep 17 00:00:00 2001 From: adelikat Date: Tue, 26 Nov 2019 11:27:55 -0600 Subject: [PATCH] InputRoll - fix behavior of up/down arrow keys --- .../CustomControls/InputRoll/InputRoll.cs | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs b/BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs index 67d8969687..3b9f07bf2a 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs @@ -1382,18 +1382,32 @@ namespace BizHawk.Client.EmuHawk } else if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Up) // Up { - if (FirstVisibleRow > 0) + if (SelectedRows.Any()) { - FirstVisibleRow--; - Refresh(); + var selectedRow = SelectedRows.First(); + 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 { - if (FirstVisibleRow < RowCount - 1) + if (SelectedRows.Any()) { - FirstVisibleRow++; - Refresh(); + var selectedRow = SelectedRows.First(); + if (selectedRow < RowCount - 1) + { + var targetSelectedRow = selectedRow + 1; + DeselectAll(); + SelectRow(targetSelectedRow, true); + ScrollToIndex(targetSelectedRow); + Refresh(); + } } } // Selection courser