diff --git a/src/screen_lyrics.c b/src/screen_lyrics.c
index 5356548c90b5ef691f09196696ceaf28672a9350..c2c7807235fd628c065ce186db429f250a2f5a11 100644 (file)
--- a/src/screen_lyrics.c
+++ b/src/screen_lyrics.c
#include <stdio.h>
static list_window_t *lw = NULL;
-static int lyrics_text_rows = -1;
static struct {
const struct mpd_song *song;
static const char *
list_callback(unsigned idx, mpd_unused int *highlight, mpd_unused void *data)
{
- if (current.lines == NULL || idx >= current.lines->len)
- return "";
+ if (idx >= current.lines->len)
+ return NULL;
return g_ptr_array_index(current.lines, idx);
}
if (list_window_scroll_cmd(lw, current.lines->len, cmd))
return 1;
- lw->repaint=1;
-
switch(cmd) {
case CMD_SELECT:
/* XXX */
lw->selected = lw->start+lw->rows;
if (screen_find(screen,
- lw, lyrics_text_rows,
+ lw, current.lines->len,
cmd, list_callback, NULL)) {
/* center the row */
- lw->start = lw->selected - (lw->rows / 2);
- if (lw->start + lw->rows > (unsigned)lyrics_text_rows) {
- if (lw->rows < (unsigned)lyrics_text_rows)
- lw->start = lyrics_text_rows - lw->rows;
- else
- lw->start = 0;
- }
+ list_window_center(lw, current.lines->len, lw->selected);
return 1;
}