Add search_print_text(), a default callback for mi->print in menu_filter(). While

here, normalize the remaining search_print_* argument paramters.
This commit is contained in:
okan 2016-12-06 21:54:10 +00:00
parent 89e4e7fb14
commit a7f2ab7497
4 changed files with 15 additions and 12 deletions

View File

@ -449,6 +449,7 @@ void search_match_text(struct menu_q *, struct menu_q *,
void search_print_client(struct menu *, int);
void search_print_cmd(struct menu *, int);
void search_print_group(struct menu *, int);
void search_print_text(struct menu *, int);
struct region_ctx *region_find(struct screen_ctx *, int, int);
struct geom screen_apply_gap(struct screen_ctx *, struct geom);

View File

@ -451,7 +451,7 @@ kbfunc_menu_exec(void *ctx, union arg *arg, enum xev xev)
if ((mi = menu_filter(sc, &menuq, label, NULL,
(CWM_MENU_DUMMY | CWM_MENU_FILE),
search_match_exec, NULL)) != NULL) {
search_match_exec, search_print_text)) != NULL) {
if (mi->text[0] == '\0')
goto out;
switch (cmd) {
@ -526,7 +526,7 @@ kbfunc_menu_ssh(void *ctx, union arg *arg, enum xev xev)
(void)fclose(fp);
menu:
if ((mi = menu_filter(sc, &menuq, "ssh", NULL, (CWM_MENU_DUMMY),
search_match_text, NULL)) != NULL) {
search_match_text, search_print_text)) != NULL) {
if (mi->text[0] == '\0')
goto out;
l = snprintf(path, sizeof(path), "%s -T '[ssh] %s' -e ssh %s",
@ -552,7 +552,7 @@ kbfunc_menu_client_label(void *ctx, union arg *arg, enum xev xev)
/* dummy is set, so this will always return */
mi = menu_filter(cc->sc, &menuq, "label", cc->label, (CWM_MENU_DUMMY),
search_match_text, NULL);
search_match_text, search_print_text);
if (!mi->abort) {
free(cc->label);

8
menu.c
View File

@ -196,7 +196,7 @@ menu_complete_path(struct menu_ctx *mc)
TAILQ_INIT(&menuq);
if ((mi = menu_filter(sc, &menuq, mc->searchstr, NULL,
(CWM_MENU_DUMMY), search_match_path, NULL)) != NULL) {
(CWM_MENU_DUMMY), search_match_path, search_print_text)) != NULL) {
mr->abort = mi->abort;
mr->dummy = mi->dummy;
if (mi->text[0] != '\0')
@ -366,11 +366,7 @@ menu_draw(struct menu_ctx *mc, struct menu_q *menuq, struct menu_q *resultq)
}
TAILQ_FOREACH(mi, resultq, resultentry) {
if (mc->print != NULL)
(*mc->print)(mi, mc->listing);
else
(void)snprintf(mi->print, sizeof(mi->print),
"%s", mi->text);
(*mc->print)(mi, mc->listing);
XftTextExtentsUtf8(X_Dpy, sc->xftfont,
(const FcChar8*)mi->print,

View File

@ -105,7 +105,13 @@ search_match_client(struct menu_q *menuq, struct menu_q *resultq, char *search)
}
void
search_print_cmd(struct menu *mi, int i)
search_print_text(struct menu *mi, int listing)
{
(void)snprintf(mi->print, sizeof(mi->print), "%s", mi->text);
}
void
search_print_cmd(struct menu *mi, int listing)
{
struct cmd_ctx *cmd = (struct cmd_ctx *)mi->ctx;
@ -113,7 +119,7 @@ search_print_cmd(struct menu *mi, int i)
}
void
search_print_group(struct menu *mi, int i)
search_print_group(struct menu *mi, int listing)
{
struct group_ctx *gc = (struct group_ctx *)mi->ctx;
@ -123,7 +129,7 @@ search_print_group(struct menu *mi, int i)
}
void
search_print_client(struct menu *mi, int list)
search_print_client(struct menu *mi, int listing)
{
struct client_ctx *cc = (struct client_ctx *)mi->ctx;
char flag = ' ';