aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWynn Wolf Arbor2020-03-18 19:46:54 +0100
committerWolfgang Müller2021-04-27 12:28:35 +0200
commit08ab650ce0d4d699e7e062d439ab6c8858bad65a (patch)
tree7ed304e0279bebe1544a140d3dc7d51e70fb42f6
parentc0f391e648f52cd9b8fa6e534a2f97a8ba0f46a9 (diff)
downloadcwm-08ab650ce0d4d699e7e062d439ab6c8858bad65a.tar.gz
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.
Diffstat (limited to '')
-rw-r--r--calmwm.h3
-rw-r--r--client.c31
-rw-r--r--conf.c1
-rw-r--r--cwm.14
-rw-r--r--search.c8
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. */