diff options
| -rw-r--r-- | dmenu.c | 14 |
1 files changed, 5 insertions, 9 deletions
| @@ -212,12 +212,12 @@ drawmenu(void) { | |||
| 212 | dc.h = mh; | 212 | dc.h = mh; |
| 213 | drawtext(NULL, dc.norm); | 213 | drawtext(NULL, dc.norm); |
| 214 | /* print prompt? */ | 214 | /* print prompt? */ |
| 215 | if(promptw) { | 215 | if(prompt) { |
| 216 | dc.w = promptw; | 216 | dc.w = promptw; |
| 217 | drawtext(prompt, dc.sel); | 217 | drawtext(prompt, dc.sel); |
| 218 | dc.x += dc.w; | ||
| 218 | } | 219 | } |
| 219 | dc.x += promptw; | 220 | dc.w = mw - dc.x; |
| 220 | dc.w = mw - promptw; | ||
| 221 | /* print command */ | 221 | /* print command */ |
| 222 | if(cmdw && item && lines == 0) | 222 | if(cmdw && item && lines == 0) |
| 223 | dc.w = cmdw; | 223 | dc.w = cmdw; |
| @@ -241,14 +241,13 @@ drawmenuh(void) { | |||
| 241 | dc.w = spaceitem; | 241 | dc.w = spaceitem; |
| 242 | drawtext(curr->left ? "<" : NULL, dc.norm); | 242 | drawtext(curr->left ? "<" : NULL, dc.norm); |
| 243 | dc.x += dc.w; | 243 | dc.x += dc.w; |
| 244 | /* determine maximum items */ | ||
| 245 | for(i = curr; i != next; i=i->right) { | 244 | for(i = curr; i != next; i=i->right) { |
| 246 | dc.w = MIN(textw(i->text), mw / 3); | 245 | dc.w = MIN(textw(i->text), mw / 3); |
| 247 | drawtext(i->text, (sel == i) ? dc.sel : dc.norm); | 246 | drawtext(i->text, (sel == i) ? dc.sel : dc.norm); |
| 248 | dc.x += dc.w; | 247 | dc.x += dc.w; |
| 249 | } | 248 | } |
| 250 | dc.x = mw - spaceitem; | ||
| 251 | dc.w = spaceitem; | 249 | dc.w = spaceitem; |
| 250 | dc.x = mw - dc.w; | ||
| 252 | drawtext(next ? ">" : NULL, dc.norm); | 251 | drawtext(next ? ">" : NULL, dc.norm); |
| 253 | } | 252 | } |
| 254 | 253 | ||
| @@ -259,7 +258,6 @@ drawmenuv(void) { | |||
| 259 | dc.x = 0; | 258 | dc.x = 0; |
| 260 | dc.w = mw; | 259 | dc.w = mw; |
| 261 | dc.y += dc.font.height + 2; | 260 | dc.y += dc.font.height + 2; |
| 262 | /* determine maximum items */ | ||
| 263 | for(i = curr; i != next; i=i->right) { | 261 | for(i = curr; i != next; i=i->right) { |
| 264 | drawtext(i->text, (sel == i) ? dc.sel : dc.norm); | 262 | drawtext(i->text, (sel == i) ? dc.sel : dc.norm); |
| 265 | dc.y += dc.font.height + 2; | 263 | dc.y += dc.font.height + 2; |
| @@ -340,13 +338,11 @@ initfont(const char *fontstr) { | |||
| 340 | if(missing) | 338 | if(missing) |
| 341 | XFreeStringList(missing); | 339 | XFreeStringList(missing); |
| 342 | if(dc.font.set) { | 340 | if(dc.font.set) { |
| 343 | XFontSetExtents *font_extents; | ||
| 344 | XFontStruct **xfonts; | 341 | XFontStruct **xfonts; |
| 345 | char **font_names; | 342 | char **font_names; |
| 346 | dc.font.ascent = dc.font.descent = 0; | 343 | dc.font.ascent = dc.font.descent = 0; |
| 347 | font_extents = XExtentsOfFontSet(dc.font.set); | ||
| 348 | n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names); | 344 | n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names); |
| 349 | for(i = 0, dc.font.ascent = 0, dc.font.descent = 0; i < n; i++) { | 345 | for(i = 0; i < n; i++) { |
| 350 | dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent); | 346 | dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent); |
| 351 | dc.font.descent = MAX(dc.font.descent, (*xfonts)->descent); | 347 | dc.font.descent = MAX(dc.font.descent, (*xfonts)->descent); |
| 352 | xfonts++; | 348 | xfonts++; |
