diff options
author | okan <okan> | 2016-12-06 21:54:10 +0000 |
---|---|---|
committer | okan <okan> | 2016-12-06 21:54:10 +0000 |
commit | a7f2ab7497f32c6ed740b610fc8120f934a4893a (patch) | |
tree | 7f71217651d8630e374e65740df3ff58803a57fa | |
parent | 89e4e7fb140a65726a9ce55179535b782e4b2d57 (diff) | |
download | cwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.tar.gz cwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.tar.xz cwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.zip |
Add search_print_text(), a default callback for mi->print in menu_filter(). While
here, normalize the remaining search_print_* argument paramters.
-rw-r--r-- | calmwm.h | 1 | ||||
-rw-r--r-- | kbfunc.c | 6 | ||||
-rw-r--r-- | menu.c | 8 | ||||
-rw-r--r-- | search.c | 12 |
4 files changed, 15 insertions, 12 deletions
diff --git a/calmwm.h b/calmwm.h index 957bfea..2912662 100644 --- a/calmwm.h +++ b/calmwm.h @@ -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); diff --git a/kbfunc.c b/kbfunc.c index 3292164..134a8e7 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -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); diff --git a/menu.c b/menu.c index fe63741..cb33530 100644 --- a/menu.c +++ b/menu.c @@ -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, diff --git a/search.c b/search.c index ae7ee0f..f244e7f 100644 --- a/search.c +++ b/search.c @@ -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 = ' '; |