Code

lyrics: don't check current.lines==NULL
[ncmpc.git] / src / screen_lyrics.c
index 5356548c90b5ef691f09196696ceaf28672a9350..c2c7807235fd628c065ce186db429f250a2f5a11 100644 (file)
@@ -39,7 +39,6 @@
 #include <stdio.h>
 
 static list_window_t *lw = NULL;
-static int lyrics_text_rows = -1;
 
 static struct {
        const struct mpd_song *song;
@@ -208,8 +207,8 @@ static int store_lyr_hd(void)
 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);
 }
@@ -292,8 +291,6 @@ lyrics_cmd(screen_t *screen, mpdclient_t *c, command_t cmd)
        if (list_window_scroll_cmd(lw, current.lines->len, cmd))
                return 1;
 
-       lw->repaint=1;
-
        switch(cmd) {
        case CMD_SELECT:
                /* XXX */
@@ -326,16 +323,10 @@ lyrics_cmd(screen_t *screen, mpdclient_t *c, command_t cmd)
 
        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;
        }