From 08ab650ce0d4d699e7e062d439ab6c8858bad65a Mon Sep 17 00:00:00 2001 From: Wynn Wolf Arbor Date: Wed, 18 Mar 2020 19:46:54 +0100 Subject: Remove matching on window title history Obscure feature. Confusing if you don't know about it, mostly useless if you do. Matching on currently visible window titles is enough. --- calmwm.h | 3 --- client.c | 31 ------------------------------- conf.c | 1 - cwm.1 | 4 +--- search.c | 8 ++------ 5 files changed, 3 insertions(+), 44 deletions(-) diff --git a/calmwm.h b/calmwm.h index a018af6..17ea203 100644 --- a/calmwm.h +++ b/calmwm.h @@ -130,7 +130,6 @@ struct winname { TAILQ_ENTRY(winname) entry; char *name; }; -TAILQ_HEAD(name_q, winname); TAILQ_HEAD(ignore_q, winname); struct client_ctx { @@ -187,7 +186,6 @@ struct client_ctx { #define CLIENT_MAXIMIZED (CLIENT_VMAXIMIZED | CLIENT_HMAXIMIZED) int flags; int stackingorder; - struct name_q nameq; char *name; char *label; char *res_class; /* class hint */ @@ -307,7 +305,6 @@ struct conf { struct wm_q wmq; int ngroups; int stickygroups; - int nameqlen; int bwidth; int mamount; int snapdist; diff --git a/client.c b/client.c index b1c6894..676b40f 100644 --- a/client.c +++ b/client.c @@ -73,7 +73,6 @@ client_init(Window win, struct screen_ctx *sc) cc->stackingorder = 0; cc->initial_state = 0; memset(&cc->hint, 0, sizeof(cc->hint)); - TAILQ_INIT(&cc->nameq); cc->geom.x = wattr.x; cc->geom.y = wattr.y; @@ -209,7 +208,6 @@ void client_remove(struct client_ctx *cc) { struct screen_ctx *sc = cc->sc; - struct winname *wn; TAILQ_REMOVE(&sc->clientq, cc, entry); @@ -219,12 +217,6 @@ client_remove(struct client_ctx *cc) if (cc->flags & CLIENT_ACTIVE) xu_ewmh_net_active_window(sc, None); - while ((wn = TAILQ_FIRST(&cc->nameq)) != NULL) { - TAILQ_REMOVE(&cc->nameq, wn, entry); - free(wn->name); - free(wn); - } - free(cc->name); free(cc->label); free(cc->res_class); @@ -661,33 +653,10 @@ client_close(struct client_ctx *cc) void client_set_name(struct client_ctx *cc) { - struct winname *wn, *wnnxt; - int i = 0; - free(cc->name); if (!xu_get_strprop(cc->win, ewmh[_NET_WM_NAME], &cc->name)) if (!xu_get_strprop(cc->win, XA_WM_NAME, &cc->name)) cc->name = xstrdup(""); - - TAILQ_FOREACH_SAFE(wn, &cc->nameq, entry, wnnxt) { - if (strcmp(wn->name, cc->name) == 0) { - TAILQ_REMOVE(&cc->nameq, wn, entry); - free(wn->name); - free(wn); - } - i++; - } - wn = xmalloc(sizeof(*wn)); - wn->name = xstrdup(cc->name); - TAILQ_INSERT_TAIL(&cc->nameq, wn, entry); - - /* Garbage collection. */ - if ((i + 1) > Conf.nameqlen) { - wn = TAILQ_FIRST(&cc->nameq); - TAILQ_REMOVE(&cc->nameq, wn, entry); - free(wn->name); - free(wn); - } } static void diff --git a/conf.c b/conf.c index 4e77251..aa7d55c 100644 --- a/conf.c +++ b/conf.c @@ -281,7 +281,6 @@ conf_init(struct conf *c) c->vtile = 50; c->snapdist = 0; c->ngroups = 0; - c->nameqlen = 5; TAILQ_INIT(&c->ignoreq); TAILQ_INIT(&c->autogroupq); diff --git a/cwm.1 b/cwm.1 index 0867b04..74dbd36 100644 --- a/cwm.1 +++ b/cwm.1 @@ -193,9 +193,7 @@ function. features the ability to search for windows by their current title, old titles, and by their label. The priority for the search results are: label, current title, -old titles in reverse order, and finally window class name. -.Nm -keeps a history of the 5 previous titles of a window. +and window class name. .Pp When searching, the leftmost character of the result list may show a flag: diff --git a/search.c b/search.c index 7cb6167..3a9e1e7 100644 --- a/search.c +++ b/search.c @@ -71,7 +71,6 @@ search_match_client(struct menu_q *menuq, struct menu_q *resultq, char *search) { struct menu *mi, *tierp[3], *before = NULL; struct client_ctx *cc; - struct winname *wn; (void)memset(tierp, 0, sizeof(tierp)); @@ -86,11 +85,8 @@ search_match_client(struct menu_q *menuq, struct menu_q *resultq, char *search) /* Match on window name history, from present to past. */ if (tier < 0) { - TAILQ_FOREACH_REVERSE(wn, &cc->nameq, name_q, entry) - if (match_substr(search, wn->name, 0)) { - tier = 1; - break; - } + if (match_substr(search, cc->name, 0)) + tier = 1; } /* Match on window resource class. */ -- cgit v1.2.3-2-gb3c3