Commit Diff


commit - d46053106d746260ce0ab39458332bc31ce6948b
commit + 4241cae2a1ffe7a499ffd9d028e001fea7a678d6
blob - e235874eb8b55bac8c89b32f984aeb972d38eabc
blob + 7358987e05fb8fed959c4ca4d96d1651a59a939c
--- src/cmd/rio/xshove.c
+++ src/cmd/rio/xshove.c
@@ -27,6 +27,7 @@ struct Win
 	int y;
 	int dx;
 	int dy;
+	char *idstr;
 	char *class;
 	char *instance;
 	char *name;
@@ -143,6 +144,9 @@ getinfo(void)
 		if(attr.width <= 0 || attr.override_redirect || attr.map_state != IsViewable)
 			continue;
 		ww->xw = xwin[i];
+		char idstr[9];
+		snprint(idstr, sizeof(idstr), "%08x", (uint)ww->xw);
+		ww->idstr = strdup(idstr);
 		ww->x = attr.x;
 		ww->y = attr.y;
 		ww->dx = attr.width;
@@ -196,7 +200,8 @@ shove(char *name, char *geom)
 	for(i=0; i<nw; i++){
 		Win *ww = &w[i];
 		if(ww->instance && strstr(ww->instance, name)
-		   || ww->class && strstr(ww->class, name)){
+		   || ww->class && strstr(ww->class, name)
+		   || ww->idstr && strstr(ww->idstr, name)){
 			int value_mask;
 			XWindowChanges e;