aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--list_window.h2
-rw-r--r--screen.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/list_window.h b/list_window.h
index c53f381a7..9e9170382 100644
--- a/list_window.h
+++ b/list_window.h
@@ -1,6 +1,8 @@
#ifndef LIST_WINDOW_H
#define LIST_WINDOW_H
+#define LW_ROW(lw) (lw ? lw->selected-lw->start : 0)
+
typedef char * (*list_window_callback_fn_t) (int index,
int *highlight,
void *data);
diff --git a/screen.c b/screen.c
index 30bf9f344..aabc6f033 100644
--- a/screen.c
+++ b/screen.c
@@ -417,6 +417,7 @@ screen_update(mpd_client_t *c)
{
static int repeat = -1;
static int random = -1;
+ list_window_t *lw = NULL;
if( !screen->painted )
return screen_paint(c);
@@ -441,10 +442,12 @@ screen_update(mpd_client_t *c)
case SCREEN_PLAY_WINDOW:
paint_top_window(TOP_HEADER_PLAY, c->status->volume, 0);
play_update(screen, c);
+ lw = screen->playlist;
break;
case SCREEN_FILE_WINDOW:
paint_top_window(file_get_header(c), c->status->volume, 0);
file_update(screen, c);
+ lw = screen->filelist;
break;
case SCREEN_SEARCH_WINDOW:
paint_top_window(TOP_HEADER_SEARCH, c->status->volume, 0);
@@ -453,11 +456,13 @@ screen_update(mpd_client_t *c)
case SCREEN_HELP_WINDOW:
paint_top_window(TOP_HEADER_HELP, c->status->volume, 0);
help_update(screen, c);
+ lw = screen->helplist;
break;
}
paint_progress_window(c);
paint_status_window(c);
- wmove(screen->main_window.w, 0, 0); wnoutrefresh(screen->main_window.w);
+ wmove(screen->main_window.w, LW_ROW(lw), 0);
+ wnoutrefresh(screen->main_window.w);
doupdate();
}