From 9c3bd9dfb763f8ad2f3011a12753feea2214896b Mon Sep 17 00:00:00 2001 From: unK Date: Fri, 5 Sep 2008 03:06:01 +0200 Subject: [PATCH] fix bug in refreshing menus and adding songs from library screen --- src/menu.h | 22 ++++++---------------- src/ncmpcpp.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/menu.h b/src/menu.h index d8264d6f..98ddb431 100644 --- a/src/menu.h +++ b/src/menu.h @@ -199,9 +199,7 @@ void Menu::AddOption(const T &item, Location location, bool separator) new_option->location = location; new_option->have_separator = separator; itsOptions.push_back(new_option); - - if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight) - NeedsRedraw.push_back(itsOptions.size()-1); + NeedsRedraw.push_back(itsOptions.size()-1); } template @@ -213,9 +211,7 @@ void Menu::AddBoldOption(const T &item, Location location, bool separator) new_option->have_separator = separator; new_option->is_bold = 1; itsOptions.push_back(new_option); - - if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight) - NeedsRedraw.push_back(itsOptions.size()-1); + NeedsRedraw.push_back(itsOptions.size()-1); } template @@ -228,9 +224,7 @@ void Menu::AddStaticOption(const T &item, Location location, bool separator) new_option->is_static = 1; itsOptions.push_back(new_option); itsStaticsNumber++; - - if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight) - NeedsRedraw.push_back(itsOptions.size()-1); + NeedsRedraw.push_back(itsOptions.size()-1); } template @@ -244,9 +238,7 @@ void Menu::AddStaticBoldOption(const T &item, Location location, bool separat new_option->is_bold = 1; itsOptions.push_back(new_option); itsStaticsNumber++; - - if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight) - NeedsRedraw.push_back(itsOptions.size()-1); + NeedsRedraw.push_back(itsOptions.size()-1); } template @@ -264,8 +256,7 @@ void Menu::UpdateOption(int index, const T &item, Location location, bool sep itsOptions.at(index)->location = location; itsOptions.at(index)->item = item; itsOptions.at(index)->have_separator = separator; - if (index >= itsBeginning && index < itsBeginning+itsHeight) - NeedsRedraw.push_back(index); + NeedsRedraw.push_back(index); } catch (std::out_of_range) { @@ -279,8 +270,7 @@ void Menu::BoldOption(int index, bool bold) try { itsOptions.at(index)->is_bold = bold; - if (index >= itsBeginning && index < itsBeginning+itsHeight) - NeedsRedraw.push_back(index); + NeedsRedraw.push_back(index); } catch (std::out_of_range) { diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 88fcf0fe..3b8bbdbc 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -1192,7 +1192,13 @@ int main(int argc, char *argv[]) } FreeSongList(list); if (Keypressed(input, Key.Space)) + { wCurrent->Go(wDown); + if (wCurrent == mLibArtists) + mLibAlbums->Clear(0); + else if (wCurrent == mLibAlbums) + mLibSongs->Clear(0); + } break; } case csPlaylistEditor: