diff options
-rw-r--r-- | dmenu.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -82,11 +82,12 @@ calcoffsets(void) { else n = mw - (promptw + inputw + textw(dc, "<") + textw(dc, ">")); - for(i = 0, next = curr; i <= n && next; next = next->right) - i += (lines > 0) ? LINEH : MIN(textw(dc, next->text), mw/3); - - for(i = 0, prev = curr; i <= n && prev && prev->left; prev = prev->left) - i += (lines > 0) ? LINEH : MIN(textw(dc, prev->left->text), mw/3); + for(i = 0, next = curr; next; next = next->right) + if((i += (lines > 0) ? LINEH : MIN(textw(dc, next->text), mw/3)) > n) + break; + for(i = 0, prev = curr; prev && prev->left; prev = prev->left) + if((i += (lines > 0) ? LINEH : MIN(textw(dc, prev->left->text), mw/3)) > n) + break; } char * |