From 44609c8ccb1ceda39801fbe8d6fd4f878f23156c Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 28 Dec 2008 19:41:59 +0100 Subject: [PATCH] do not block scrolling if a key is pressed --- src/ncmpcpp.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 9f2cde3c..093db039 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -349,6 +349,8 @@ int main(int argc, char *argv[]) string screen_title; string info_title; + + timeval now, past; // local variables end signal(SIGPIPE, SIG_IGN); @@ -363,6 +365,8 @@ int main(int argc, char *argv[]) pthread_attr_setdetachstate(&attr_detached, PTHREAD_CREATE_DETACHED); # endif // HAVE_CURL_CURL_H + gettimeofday(&now, 0); + while (!main_exit) { if (!Mpd->Connected()) @@ -380,11 +384,16 @@ int main(int argc, char *argv[]) messages_allowed = 1; // header stuff + gettimeofday(&past, 0); const size_t max_allowed_title_length = wHeader ? wHeader->GetWidth()-volume_state.length()-screen_title.length() : 0; - if (input == ERR - && ((current_screen == csBrowser && browsed_dir.length() > max_allowed_title_length) - || current_screen == csLyrics)) + if (((past.tv_sec == now.tv_sec && past.tv_usec >= now.tv_usec+500000) + || past.tv_sec >= now.tv_sec+1) + && ((current_screen == csBrowser && browsed_dir.length() > max_allowed_title_length) + || current_screen == csLyrics)) + { redraw_header = 1; + gettimeofday(&now, 0); + } if (Config.header_visibility && redraw_header) { switch (current_screen)