Xinqi Bao's Git
projects
/
dmenu.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
retyped promptw
[dmenu.git]
/
dmenu.c
diff --git
a/dmenu.c
b/dmenu.c
index
7dfc2d3
..
175cbdc
100644
(file)
--- a/
dmenu.c
+++ b/
dmenu.c
@@
-51,6
+51,7
@@
static const char *selfgcolor = "#ffffff";
static unsigned int inputw = 0;
static unsigned int lines = 0;
static unsigned int mw, mh;
static unsigned int inputw = 0;
static unsigned int lines = 0;
static unsigned int mw, mh;
+static unsigned int promptw;
static unsigned long normcol[ColLast];
static unsigned long selcol[ColLast];
static Atom utf8;
static unsigned long normcol[ColLast];
static unsigned long selcol[ColLast];
static Atom utf8;
@@
-79,7
+80,7
@@
void
calcoffsetsh(void) {
unsigned int w, x;
calcoffsetsh(void) {
unsigned int w, x;
- w =
(prompt ? textw(dc, prompt) : 0)
+ inputw + textw(dc, "<") + textw(dc, ">");
+ w =
promptw
+ inputw + textw(dc, "<") + textw(dc, ">");
for(x = w, next = curr; next; next = next->right)
if((x += MIN(textw(dc, next->text), mw / 3)) > mw)
break;
for(x = w, next = curr; next; next = next->right)
if((x += MIN(textw(dc, next->text), mw / 3)) > mw)
break;
@@
-118,7
+119,7
@@
drawmenu(void) {
dc->y = topbar ? 0 : mh - dc->h;
/* print prompt? */
if(prompt) {
dc->y = topbar ? 0 : mh - dc->h;
/* print prompt? */
if(prompt) {
- dc->w =
textw(dc, prompt)
;
+ dc->w =
promptw
;
drawtext(dc, prompt, selcol);
dc->x = dc->w;
}
drawtext(dc, prompt, selcol);
dc->x = dc->w;
}
@@
-506,7
+507,9
@@
setup(void) {
grabkeyboard();
setcanvas(dc, win, mw, mh);
inputw = MIN(inputw, mw/3);
grabkeyboard();
setcanvas(dc, win, mw, mh);
inputw = MIN(inputw, mw/3);
+ promptw = prompt ? MIN(textw(dc, prompt), mw/5) : 0;
XMapRaised(dc->dpy, win);
XMapRaised(dc->dpy, win);
+ text[0] = '\0';
match();
}
match();
}