commit d11955622f822a815518ad8987c44b59a50ecb59
parent b1533df3279d51283d7d42c2cd47239e2dee94fa
Author: wh1tepearl <wh1tepearl@gmail.com>
Date: Wed, 25 Mar 2026 21:51:23 +0000
brainfart
Diffstat:
3 files changed, 41 insertions(+), 35 deletions(-)
diff --git a/Makefile b/Makefile
@@ -34,14 +34,10 @@ dist: clean
rm -rf vxwm-${VERSION}
install: all
- mkdir -p ${DESTDIR}${PREFIX}/bin
- cp -f vxwm ${DESTDIR}${PREFIX}/bin
- cp -f rvx ${DESTDIR}${PREFIX}/bin
- chmod 755 ${DESTDIR}${PREFIX}/bin/vxwm
- chmod 755 ${DESTDIR}${PREFIX}/bin/rvx
- mkdir -p ${DESTDIR}${MANPREFIX}/man1
- sed "s/VERSION/${VERSION}/g" < vxwm.1 > ${DESTDIR}${MANPREFIX}/man1/vxwm.1
- chmod 644 ${DESTDIR}${MANPREFIX}/man1/vxwm.1
+ install -D -m 755 vxwm ${DESTDIR}${PREFIX}/bin/vxwm
+ install -D -m 755 rvx ${DESTDIR}${PREFIX}/bin/rvx
+ install -D -m 644 vxwm.1 ${DESTDIR}${MANPREFIX}/man1/vxwm.1
+ sed -i 's/VERSION/${VERSION}/g' ${DESTDIR}${MANPREFIX}/man1/vxwm.1
uninstall:
rm -f ${DESTDIR}${PREFIX}/bin/vxwm\
diff --git a/modules/infinitetags/infinitetags.c b/modules/infinitetags/infinitetags.c
@@ -170,37 +170,31 @@ restore_canvas_positions(Monitor *m) {
void
centerwindow(const Arg *arg)
{
- Client *c = (arg && arg->v) ? (Client *)arg->v : selmon->sel;
+ Client *c = (arg && arg->v) ? (Client *)arg->v : selmon->sel;
- if (!c || !c->mon || c->mon->lt[c->mon->sellt]->arrange != NULL)
- return;
-
- Monitor *m = c->mon;
- int tagidx = getcurrenttag(m);
-
- int screen_center_x = m->wx + (m->ww / 2);
- int screen_center_y = m->wy + (m->wh / 2);
+ if (!c || !c->mon || c->mon->lt[c->mon->sellt]->arrange != NULL)
+ return;
- int win_center_x = c->x + (c->w + 2 * c->bw) / 2;
- int win_center_y = c->y + (c->h + 2 * c->bw) / 2;
+ Monitor *m = c->mon;
+ int tagidx = getcurrenttag(m);
- int dx = screen_center_x - win_center_x;
- int dy = screen_center_y - win_center_y;
+ int dx = (m->wx + m->ww - WIDTH(c)) / 2 - c->x;
+ int dy = m->wy + (m->wh / 2) - (c->y + HEIGHT(c) / 2);
- if (dx == 0 && dy == 0)
- return;
+ if (dx == 0 && dy == 0)
+ return;
- Client *tmp;
- for (tmp = m->clients; tmp; tmp = tmp->next) {
- if (ISVISIBLE(tmp)) {
- tmp->x += dx;
- tmp->y += dy;
- XMoveWindow(dpy, tmp->win, tmp->x, tmp->y);
- }
+ Client *tmp;
+ for (tmp = m->clients; tmp; tmp = tmp->next) {
+ if (ISVISIBLE(tmp)) {
+ tmp->x += dx;
+ tmp->y += dy;
+ XMoveWindow(dpy, tmp->win, tmp->x, tmp->y);
}
+ }
- m->canvas[tagidx].cx += dx;
- m->canvas[tagidx].cy += dy;
+ m->canvas[tagidx].cx += dx;
+ m->canvas[tagidx].cy += dy;
- drawbar(m);
+ drawbar(m);
}
diff --git a/vxwm.c b/vxwm.c
@@ -598,7 +598,11 @@ cleanupmon(Monitor *mon)
}
XUnmapWindow(dpy, mon->barwin);
XDestroyWindow(dpy, mon->barwin);
- free(mon);
+#if INFINITE_TAGS
+ free(mon->canvas);
+#endif
+ free(mon);
+
}
void
@@ -897,7 +901,6 @@ drawbar(Monitor *m)
}
}
drw_map(drw, m->barwin, 0, 0, m->ww, bh);
- XRaiseWindow(dpy, m->barwin);
}
void
@@ -1729,6 +1732,19 @@ restack(Monitor *m)
wc.sibling = c->win;
}
}
+#if INFINITE_TAGS
+ else {
+ wc.stack_mode = Below;
+ wc.sibling = m->barwin;
+ for (c = m->stack; c; c = c->snext) {
+ if (ISVISIBLE(c) && !c->isfixed) {
+ XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc);
+ wc.sibling = c->win;
+ }
+ }
+ XRaiseWindow(dpy, m->barwin);
+ }
+#endif
XSync(dpy, False);
while (XCheckMaskEvent(dpy, EnterWindowMask, &ev));
}