projects
/
xmenu
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix license, add acknowledgements
[xmenu]
/
xmenu.c
diff --git
a/xmenu.c
b/xmenu.c
index
acdabc2
..
8658a9d
100644
(file)
--- a/
xmenu.c
+++ b/
xmenu.c
@@
-141,7
+141,7
@@
getoptions(int argc, char *argv[])
{
int ch;
{
int ch;
- while ((ch = getopt(argc, argv, "ip:r
t
w")) != -1) {
+ while ((ch = getopt(argc, argv, "ip:rw")) != -1) {
switch (ch) {
case 'i':
iflag = 1;
switch (ch) {
case 'i':
iflag = 1;
@@
-153,9
+153,6
@@
getoptions(int argc, char *argv[])
case 'r':
rflag = 1;
break;
case 'r':
rflag = 1;
break;
- case 't':
- config.typetoselect = !config.typetoselect;
- break;
case 'w':
wflag = 1;
break;
case 'w':
wflag = 1;
break;
@@
-1318,36
+1315,38
@@
enteritem:
ksym = XK_ISO_Left_Tab;
/* cycle through menu */
ksym = XK_ISO_Left_Tab;
/* cycle through menu */
-
item
= NULL;
+
select
= NULL;
ksym = normalizeksym(ksym);
switch (ksym) {
case XK_Home:
ksym = normalizeksym(ksym);
switch (ksym) {
case XK_Home:
-
item
= itemcycle(currmenu, ITEMFIRST);
- action = ACTION_CLEAR;
+
select
= itemcycle(currmenu, ITEMFIRST);
+ action = ACTION_CLEAR
| ACTION_SELECT | ACTION_DRAW
;
break;
case XK_End:
break;
case XK_End:
-
item
= itemcycle(currmenu, ITEMLAST);
- action = ACTION_CLEAR;
+
select
= itemcycle(currmenu, ITEMLAST);
+ action = ACTION_CLEAR
| ACTION_SELECT | ACTION_DRAW
;
break;
case XK_ISO_Left_Tab:
if (*text) {
break;
case XK_ISO_Left_Tab:
if (*text) {
- item = matchitem(currmenu, text, -1);
+ select = matchitem(currmenu, text, -1);
+ action = ACTION_SELECT | ACTION_DRAW;
break;
}
/* FALLTHROUGH */
case XK_Up:
break;
}
/* FALLTHROUGH */
case XK_Up:
-
item
= itemcycle(currmenu, ITEMPREV);
- action = ACTION_CLEAR;
+
select
= itemcycle(currmenu, ITEMPREV);
+ action = ACTION_CLEAR
| ACTION_SELECT | ACTION_DRAW
;
break;
case XK_Tab:
if (*text) {
break;
case XK_Tab:
if (*text) {
- item = matchitem(currmenu, text, 1);
+ select = matchitem(currmenu, text, 1);
+ action = ACTION_SELECT | ACTION_DRAW;
break;
}
/* FALLTHROUGH */
case XK_Down:
break;
}
/* FALLTHROUGH */
case XK_Down:
-
item
= itemcycle(currmenu, ITEMNEXT);
- action = ACTION_CLEAR;
+
select
= itemcycle(currmenu, ITEMNEXT);
+ action = ACTION_CLEAR
| ACTION_SELECT | ACTION_DRAW
;
break;
case XK_1: case XK_2: case XK_3: case XK_4: case XK_5: case XK_6: case XK_7: case XK_8: case XK_9:
item = itemcycle(currmenu, ITEMFIRST);
break;
case XK_1: case XK_2: case XK_3: case XK_4: case XK_5: case XK_6: case XK_7: case XK_8: case XK_9:
item = itemcycle(currmenu, ITEMFIRST);
@@
-1356,7
+1355,8
@@
enteritem:
currmenu->selected = item;
item = itemcycle(currmenu, ITEMNEXT);
}
currmenu->selected = item;
item = itemcycle(currmenu, ITEMNEXT);
}
- action = ACTION_CLEAR;
+ select = item;
+ action = ACTION_CLEAR | ACTION_SELECT | ACTION_DRAW;
break;
case XK_Return: case XK_Right:
if (currmenu->selected) {
break;
case XK_Return: case XK_Right:
if (currmenu->selected) {
@@
-1366,28
+1366,27
@@
enteritem:
break;
case XK_Escape: case XK_Left:
if (currmenu->parent) {
break;
case XK_Escape: case XK_Left:
if (currmenu->parent) {
-
item
= currmenu->parent->selected;
+
select
= currmenu->parent->selected;
currmenu = currmenu->parent;
currmenu = currmenu->parent;
- action = ACTION_CLEAR | ACTION_MAP;
+ action = ACTION_CLEAR | ACTION_MAP
| ACTION_SELECT | ACTION_DRAW
;
}
break;
case XK_BackSpace: case XK_Clear: case XK_Delete:
}
break;
case XK_BackSpace: case XK_Clear: case XK_Delete:
- action = ACTION_CLEAR;
+ action = ACTION_CLEAR
| ACTION_SELECT | ACTION_DRAW
;
break;
default:
append:
break;
default:
append:
- if (
!config.typetoselect
)
+ if (
*buf == '\0' || iscntrl(*buf)
)
break;
for (i = 0; i < 2; i++) {
append(text, buf, sizeof text, len);
break;
for (i = 0; i < 2; i++) {
append(text, buf, sizeof text, len);
- if ((
item
= matchitem(currmenu, text, 0)))
+ if ((
select
= matchitem(currmenu, text, 0)))
break;
text[0] = '\0';
}
break;
text[0] = '\0';
}
+ action = ACTION_SELECT | ACTION_DRAW;
break;
}
break;
}
- select = item;
- action |= ACTION_SELECT | ACTION_DRAW;
break;
case LeaveNotify:
previtem = NULL;
break;
case LeaveNotify:
previtem = NULL;
@@
-1490,7
+1489,7
@@
main(int argc, char *argv[])
if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL)
errx(1, "XOpenIM: could not open input device");
if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL)
errx(1, "XOpenIM: could not open input device");
- /*
get configuration
*/
+ /*
process configuration and window class
*/
getresources();
classh.res_class = PROGNAME;
classh.res_name = getoptions(argc, argv);
getresources();
classh.res_class = PROGNAME;
classh.res_name = getoptions(argc, argv);