diff options
| -rw-r--r-- | dmenu.c | 16 |
1 files changed, 3 insertions, 13 deletions
| @@ -130,7 +130,7 @@ drawmenu(void) | |||
| 130 | { | 130 | { |
| 131 | unsigned int curpos; | 131 | unsigned int curpos; |
| 132 | struct item *item; | 132 | struct item *item; |
| 133 | int x = 0, y = 0, w, inputscheme; | 133 | int x = 0, y = 0, w; |
| 134 | 134 | ||
| 135 | drw_setscheme(drw, scheme[SchemeNorm]); | 135 | drw_setscheme(drw, scheme[SchemeNorm]); |
| 136 | drw_rect(drw, 0, 0, mw, mh, 1, 1); | 136 | drw_rect(drw, 0, 0, mw, mh, 1, 1); |
| @@ -138,27 +138,18 @@ drawmenu(void) | |||
| 138 | if (prompt && *prompt) { | 138 | if (prompt && *prompt) { |
| 139 | drw_setscheme(drw, scheme[SchemeSel]); | 139 | drw_setscheme(drw, scheme[SchemeSel]); |
| 140 | x = drw_text(drw, x, 0, promptw, bh, lrpad / 2, prompt, 0); | 140 | x = drw_text(drw, x, 0, promptw, bh, lrpad / 2, prompt, 0); |
| 141 | x += 2; | ||
| 142 | } | 141 | } |
| 143 | /* draw input field */ | 142 | /* draw input field */ |
| 144 | w = (lines > 0 || !matches) ? mw - x : inputw; | 143 | w = (lines > 0 || !matches) ? mw - x : inputw; |
| 145 | if (matches && !strcmp(text, curr->text)) | 144 | drw_setscheme(drw, scheme[SchemeNorm]); |
| 146 | inputscheme = SchemeSel; | ||
| 147 | else | ||
| 148 | inputscheme = SchemeNorm; | ||
| 149 | drw_setscheme(drw, scheme[inputscheme]); | ||
| 150 | |||
| 151 | drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); | 145 | drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); |
| 152 | 146 | ||
| 153 | drw_font_getexts(drw->fonts, text, cursor, &curpos, NULL); | 147 | drw_font_getexts(drw->fonts, text, cursor, &curpos, NULL); |
| 154 | if ((curpos += lrpad / 2 - 1) < w) { | 148 | if ((curpos += lrpad / 2 - 1) < w) { |
| 155 | drw_setscheme(drw, scheme[inputscheme]); | 149 | drw_setscheme(drw, scheme[SchemeNorm]); |
| 156 | drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0); | 150 | drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0); |
| 157 | } | 151 | } |
| 158 | 152 | ||
| 159 | if (inputscheme == SchemeSel) | ||
| 160 | goto drawmap; | ||
| 161 | |||
| 162 | if (lines > 0) { | 153 | if (lines > 0) { |
| 163 | /* draw vertical list */ | 154 | /* draw vertical list */ |
| 164 | for (item = curr; item != next; item = item->right) | 155 | for (item = curr; item != next; item = item->right) |
| @@ -180,7 +171,6 @@ drawmenu(void) | |||
| 180 | drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0); | 171 | drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0); |
| 181 | } | 172 | } |
| 182 | } | 173 | } |
| 183 | drawmap: | ||
| 184 | drw_map(drw, win, 0, 0, mw, mh); | 174 | drw_map(drw, win, 0, 0, mw, mh); |
| 185 | } | 175 | } |
| 186 | 176 | ||
