From c661bc054ebb5bcc0c9e2e3649ffbb337ca3f253 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Sun, 24 Jun 2012 13:12:12 +0200 Subject: [PATCH] fixed keyboard navigation in song menu (last row) --- Vocaluxe/Menu/SongMenu/CSongMenuTileBoard.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Vocaluxe/Menu/SongMenu/CSongMenuTileBoard.cs b/Vocaluxe/Menu/SongMenu/CSongMenuTileBoard.cs index 48868a32..56c6c325 100644 --- a/Vocaluxe/Menu/SongMenu/CSongMenuTileBoard.cs +++ b/Vocaluxe/Menu/SongMenu/CSongMenuTileBoard.cs @@ -211,7 +211,9 @@ namespace Vocaluxe.Menu.SongMenu if (_Locked > 0) { _Locked--; - UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); + if (CSongs.Category < 0 && _Locked < CSongs.NumCategories - _NumW || + CSongs.Category >= 0 && _Locked < CSongs.NumVisibleSongs - _NumW) + UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); } break; @@ -221,7 +223,8 @@ namespace Vocaluxe.Menu.SongMenu if (_Locked < CSongs.NumCategories - 1) { _Locked++; - UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); + if (_Locked < CSongs.NumCategories - _NumW) + UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); } } @@ -230,7 +233,8 @@ namespace Vocaluxe.Menu.SongMenu if (_Locked < CSongs.NumVisibleSongs - 1) { _Locked++; - UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); + if (_Locked < CSongs.NumVisibleSongs - _NumW) + UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); } } break; @@ -255,13 +259,14 @@ namespace Vocaluxe.Menu.SongMenu NextCategory(); break; } - + if (CSongs.Category < 0) { if (_Locked < CSongs.NumCategories - _NumW) { _Locked += _NumW; - UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); + if (_Locked < CSongs.NumCategories - _NumW) + UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); } } @@ -270,7 +275,8 @@ namespace Vocaluxe.Menu.SongMenu if (_Locked < CSongs.NumVisibleSongs - _NumW) { _Locked += _NumW; - UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); + if (_Locked < CSongs.NumVisibleSongs - _NumW) + UpdateList((_Locked / _NumW) * _NumW - (_NumW * (_NumH - 2))); } } break;