diff options
author | Harald van Dijk <truedfx@gentoo.org> | 2009-10-26 20:55:05 +0059 |
---|---|---|
committer | Harald van Dijk <truedfx@gentoo.org> | 2009-10-26 20:55:05 +0059 |
commit | 3ed6262446cb9da36d5f90bc8f62b7296f55ec43 (patch) | |
tree | 2b01de1a6be95c9efec4afaab7f9accd657b35e7 /ufed-curses-checklist.c | |
parent | ufed-0.40-source.patch (diff) | |
download | ufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.tar.gz ufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.tar.bz2 ufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.zip |
ufed-0.40-termsize-2.patch
Diffstat (limited to 'ufed-curses-checklist.c')
-rw-r--r-- | ufed-curses-checklist.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/ufed-curses-checklist.c b/ufed-curses-checklist.c index 82ee9d0..a1a3c55 100644 --- a/ufed-curses-checklist.c +++ b/ufed-curses-checklist.c @@ -109,8 +109,6 @@ static void read_flags(void) { flag->state = &line[state.start]; flag->item.height = ndescr; - if(ndescr > minheight) - minheight = ndescr; { int i; for(i=0; i<ndescr; i++) { flag->descr[i] = getline(input); } } @@ -174,11 +172,12 @@ static void drawflag(struct item *item, bool highlight) { wattrset(win(List), COLOR_PAIR(3)); else wattrset(win(List), COLOR_PAIR(3) | A_BOLD | A_REVERSE); - if(y < 0) { + if(y >= 0 || -y >= flag->item.height) { + d = &flag->descr[0]; + } else { wmove(win(List), 0, 0); d = &flag->descr[-y]; y = 0; - goto descriptiononly; } wmove(win(List), y, 0); sprintf(buf, " %c%c%c %-*s %-5.5s ", @@ -187,7 +186,6 @@ static void drawflag(struct item *item, bool highlight) { flag->on == ' ' ? ')' : ']', minwidth-12, flag->name, flag->state); - d = &flag->descr[0]; if(d != &flag->descr[flag->item.height]) { for(;;) { sprintf(buf+minwidth, "%-*.*s", @@ -198,7 +196,6 @@ static void drawflag(struct item *item, bool highlight) { waddstr(win(List), buf); d++; y++; - descriptiononly: if(d!=&flag->descr[flag->item.height] && y<wHeight(List)) { char *p; for(p=buf; p!=buf+minwidth; p++) @@ -214,7 +211,7 @@ static void drawflag(struct item *item, bool highlight) { y++; } if(highlight) - wmove(win(List), flag->item.top - topy, 2); + wmove(win(List), max(flag->item.top - topy, 0), 2); wnoutrefresh(win(List)); } |