commit 7d342c424f732f21479c23bd56f1cb1573f18f48
parent 95dffe3f1acced721fbfc1bc5b40eff3d462ab7d
Author: garbeam <garbeam@mmv.wmii.de>
Date: Sat, 17 Dec 2005 13:10:47 +0200
fixed wmiibar and wmiimenu
Diffstat:
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/cmd/wmiibar.c b/cmd/wmiibar.c
@@ -205,7 +205,7 @@ static void draw()
if (!nitems)
return;
- expandable = blitz_strtonum(file[B_EXPANDABLE]->content, 0, expandable);
+ expandable = blitz_strtonum(file[B_EXPANDABLE]->content, 0, nitems);
snprintf(buf, sizeof(buf), "/%d", expandable);
if (!ixp_walk(ixps, buf))
expandable = 0;
@@ -235,7 +235,7 @@ static void draw()
}
else {
idx = 0;
- for (i = items; i && idx != expandable; i = i->next);
+ for (i = items; i && idx != expandable; i = i->next) idx++;
i->d.rect.width = brect.width - w;
}
for (i = items; i; i = i->next) {
diff --git a/cmd/wmiimenu.c b/cmd/wmiimenu.c
@@ -190,11 +190,11 @@ static void update_offsets()
Item *i;
unsigned int w = cmdw + 2 * seek;
- if (!sel)
+ if (!i)
return;
/* calc next offset */
- for (i = offset[OFF_CURR]; i; i = i->next) {
+ for (i = offset[OFF_CURR]; i && i->next; i = i->next) {
w += XTextWidth(font, i->file->content, strlen(i->file->content)) + mrect.height;
if (w > mrect.width)
break;
@@ -202,12 +202,13 @@ static void update_offsets()
offset[OFF_NEXT] = i;
w = cmdw + 2 * seek;
- for (i = offset[OFF_CURR]->prev; i; i = i->prev) {
+ for (i = offset[OFF_CURR]->prev; i && i->prev; i = i->prev) {
w += XTextWidth(font, i->file->content, strlen(i->file->content)) + mrect.height;
if (w > mrect.width)
break;
}
- offset[OFF_PREV] = i->next;
+ if (i)
+ offset[OFF_PREV] = i->next;
}
static size_t update_items(char *pattern)
@@ -251,7 +252,7 @@ static size_t update_items(char *pattern)
new->file = p;
nitems++;
if (!items)
- items = i = new;
+ offset[OFF_CURR] = sel = items = i = new;
else {
i->next = new;
new->prev = i;
@@ -267,7 +268,7 @@ static size_t update_items(char *pattern)
new->file = p;
nitems++;
if (!items)
- items = i = new;
+ offset[OFF_CURR] = sel = items = i = new;
else {
i->next = new;
new->prev = i;