diff --git a/src/playlist.cpp b/src/playlist.cpp index 37b8be7c..07c98187 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -43,9 +43,8 @@ bool Playlist::BlockRefreshing = 0; Menu< std::pair > *Playlist::SortDialog; const size_t Playlist::SortOptions = 10; - const size_t Playlist::SortDialogWidth = 30; -const size_t Playlist::SortDialogHeight = 18; +size_t Playlist::SortDialogHeight; void Playlist::Init() { @@ -60,6 +59,8 @@ void Playlist::Init() w->SetGetStringFunction(Config.columns_in_playlist ? SongInColumnsToString : SongToString); w->SetGetStringFunctionUserData(Config.columns_in_playlist ? &Config.song_columns_list_format : &Config.song_list_format); + SortDialogHeight = std::min(int(MainHeight-2), 18); + SortDialog = new Menu< std::pair >((COLS-SortDialogWidth)/2, (LINES-SortDialogHeight)/2, SortDialogWidth, SortDialogHeight, "Sort songs by...", Config.main_color, Config.window_border); SortDialog->SetTimeout(ncmpcpp_window_timeout); SortDialog->CyclicScrolling(Config.use_cyclic_scrolling); @@ -101,6 +102,9 @@ void Playlist::Resize() { w->Resize(COLS, MainHeight); w->SetTitle(Config.columns_in_playlist ? Display::Columns(Config.song_columns_list_format) : ""); + SortDialogHeight = std::min(int(MainHeight-2), 18); + if (MainHeight > 6) + SortDialog->Resize(SortDialogWidth, SortDialogHeight); SortDialog->MoveTo((COLS-SortDialogWidth)/2, (LINES-SortDialogHeight)/2); hasToBeResized = 0; } @@ -151,7 +155,7 @@ void Playlist::ApplyFilter(const std::string &s) void Playlist::Sort() { - if (w->GetWidth() < SortDialogWidth || w->GetHeight() < SortDialogHeight) + if (w->GetWidth() < SortDialogWidth || MainHeight <= 6) { ShowMessage("Screen is too small to display dialog window!"); return; diff --git a/src/playlist.h b/src/playlist.h index c0210158..43896e72 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -93,7 +93,7 @@ class Playlist : public Screen< Menu > static const size_t SortOptions; static const size_t SortDialogWidth; - static const size_t SortDialogHeight; + static size_t SortDialogHeight; }; extern Playlist *myPlaylist;