|
|
|
@@ -11,7 +11,6 @@
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#include <sys/select.h>
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
#include <X11/cursorfont.h>
|
|
|
|
|
#include <X11/Xutil.h>
|
|
|
|
|
#include <X11/keysym.h>
|
|
|
|
|
|
|
|
|
@@ -145,7 +144,7 @@ kpress(XKeyEvent * e) {
|
|
|
|
|
|
|
|
|
|
len = strlen(text);
|
|
|
|
|
buf[0] = 0;
|
|
|
|
|
num = XLookupString(e, buf, sizeof(buf), &ksym, 0);
|
|
|
|
|
num = XLookupString(e, buf, sizeof buf, &ksym, 0);
|
|
|
|
|
if(IsFunctionKey(ksym) || IsKeypadKey(ksym)
|
|
|
|
|
|| IsMiscFunctionKey(ksym) || IsPFKey(ksym)
|
|
|
|
|
|| IsPrivateKeypadKey(ksym))
|
|
|
|
@@ -182,7 +181,7 @@ kpress(XKeyEvent * e) {
|
|
|
|
|
case XK_Tab:
|
|
|
|
|
if(!sel)
|
|
|
|
|
return;
|
|
|
|
|
strncpy(text, sel->text, sizeof(text));
|
|
|
|
|
strncpy(text, sel->text, sizeof text);
|
|
|
|
|
match(text);
|
|
|
|
|
break;
|
|
|
|
|
case XK_Right:
|
|
|
|
@@ -222,9 +221,9 @@ kpress(XKeyEvent * e) {
|
|
|
|
|
if(num && !iscntrl((int) buf[0])) {
|
|
|
|
|
buf[num] = 0;
|
|
|
|
|
if(len > 0)
|
|
|
|
|
strncat(text, buf, sizeof(text));
|
|
|
|
|
strncat(text, buf, sizeof text);
|
|
|
|
|
else
|
|
|
|
|
strncpy(text, buf, sizeof(text));
|
|
|
|
|
strncpy(text, buf, sizeof text);
|
|
|
|
|
match(text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -239,7 +238,7 @@ readstdin(void) {
|
|
|
|
|
Item *i, *new;
|
|
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
|
while(fgets(buf, sizeof(buf), stdin)) {
|
|
|
|
|
while(fgets(buf, sizeof buf, stdin)) {
|
|
|
|
|
len = strlen(buf);
|
|
|
|
|
if (buf[len - 1] == '\n')
|
|
|
|
|
buf[len - 1] = 0;
|
|
|
|
@@ -286,18 +285,24 @@ main(int argc, char *argv[]) {
|
|
|
|
|
timeout.tv_sec = 3;
|
|
|
|
|
/* command line args */
|
|
|
|
|
for(i = 1; i < argc; i++)
|
|
|
|
|
if(!strncmp(argv[i], "-font", 6))
|
|
|
|
|
font = argv[++i];
|
|
|
|
|
else if(!strncmp(argv[i], "-normbg", 8))
|
|
|
|
|
normbg = argv[++i];
|
|
|
|
|
else if(!strncmp(argv[i], "-normfg", 8))
|
|
|
|
|
normfg = argv[++i];
|
|
|
|
|
else if(!strncmp(argv[i], "-selbg", 7))
|
|
|
|
|
selbg = argv[++i];
|
|
|
|
|
else if(!strncmp(argv[i], "-selfg", 7))
|
|
|
|
|
selfg = argv[++i];
|
|
|
|
|
else if(!strncmp(argv[i], "-t", 3))
|
|
|
|
|
timeout.tv_sec = atoi(argv[++i]);
|
|
|
|
|
if(!strncmp(argv[i], "-font", 6)) {
|
|
|
|
|
if(++i < argc) font = argv[i];
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-normbg", 8)) {
|
|
|
|
|
if(++i < argc) normbg = argv[i];
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-normfg", 8)) {
|
|
|
|
|
if(++i < argc) normfg = argv[i];
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-selbg", 7)) {
|
|
|
|
|
if(++i < argc) selbg = argv[i];
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-selfg", 7)) {
|
|
|
|
|
if(++i < argc) selfg = argv[i];
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-t", 3)) {
|
|
|
|
|
if(++i < argc) timeout.tv_sec = atoi(argv[i]);
|
|
|
|
|
}
|
|
|
|
|
else if(!strncmp(argv[i], "-v", 3)) {
|
|
|
|
|
fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
|
|
|
|
|
exit(EXIT_SUCCESS);
|
|
|
|
@@ -340,7 +345,6 @@ main(int argc, char *argv[]) {
|
|
|
|
|
DefaultDepth(dpy, screen), CopyFromParent,
|
|
|
|
|
DefaultVisual(dpy, screen),
|
|
|
|
|
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
|
|
|
|
|
XDefineCursor(dpy, win, XCreateFontCursor(dpy, XC_xterm));
|
|
|
|
|
/* pixmap */
|
|
|
|
|
dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen));
|
|
|
|
|
dc.gc = XCreateGC(dpy, root, 0, 0);
|
|
|
|
|