if (!mflag || (mflag && (config.monitor < 0 || config.monitor >= nmons))) {
for (i = 0; i < nmons; i++) {
- if (cursx >= info[i].x_org && cursx <= info[i].x_org + info[i].width &&
- cursy >= info[i].y_org && cursy <= info[i].y_org + info[i].height) {
+ if (BETWEEN(cursx, info[i].x_org, info[i].x_org + info[i].width) &&
+ BETWEEN(cursy, info[i].y_org, info[i].y_org + info[i].height)) {
selmon = i;
break;
}
}
item->y = 0;
item->h = 0;
- if (item->label == NULL)
- item->labellen = 0;
- else
- item->labellen = strlen(item->label);
item->next = NULL;
item->submenu = NULL;
item->icon = NULL;
menu->list = list;
menu->caller = NULL;
menu->selected = NULL;
- menu->w = 0; /* calculated by setupmenu() */
- menu->h = 0; /* calculated by setupmenu() */
- menu->x = 0; /* calculated by setupmenu() */
- menu->y = 0; /* calculated by setupmenu() */
+ menu->w = 0; /* recalculated by setupmenu() */
+ menu->h = 0; /* recalculated by setupmenu() */
+ menu->x = mon.x; /* recalculated by setupmenu() */
+ menu->y = mon.y; /* recalculated by setupmenu() */
menu->level = level;
menu->drawn = 0;
menu->hasicon = 0;
menu->h += item->h;
if (item->label)
- textwidth = drawtext(NULL, NULL, 0, 0, item->h, item->label);
+ textwidth = drawtext(NULL, NULL, 0, 0, 0, item->label);
else
textwidth = 0;
else if (menu->parent->x > menu->w + config.border_pixels + config.gap_pixels)
menu->x = menu->parent->x - menu->w - config.border_pixels - config.gap_pixels;
- if (mon.y + mon.h - (menu->caller->y + menu->parent->y) > height)
+ if (mon.y + mon.h - (menu->caller->y + menu->parent->y) >= height)
menu->y = menu->caller->y + menu->parent->y;
- else if (mon.y + mon.h - menu->parent->y > height)
- menu->y = menu->parent->y;
else if (mon.y + mon.h > height)
menu->y = mon.y + mon.h - height;
}
static void
cleanup(void)
{
+ size_t i;
+
XUngrabPointer(dpy, CurrentTime);
XUngrabKeyboard(dpy, CurrentTime);
XftColorFree(dpy, visual, colormap, &dc.separator);
XftColorFree(dpy, visual, colormap, &dc.border);
+ for (i = 0; i < dc.nfonts; i++)
+ XftFontClose(dpy, dc.fonts[i]);
+
XFreeGC(dpy, dc.gc);
XCloseDisplay(dpy);
}