aspectresize patch

This commit is contained in:
Sravan Balaji
2020-11-23 20:48:45 -05:00
parent 586865823b
commit 1dc6430ff6
5 changed files with 91 additions and 1 deletions

25
dwm.c
View File

@@ -148,6 +148,7 @@ static void applyrules(Client *c);
static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
static void arrange(Monitor *m);
static void arrangemon(Monitor *m);
static void aspectresize(const Arg *arg);
static void attach(Client *c);
static void attachstack(Client *c);
static void buttonpress(XEvent *e);
@@ -410,6 +411,30 @@ arrangemon(Monitor *m)
m->lt[m->sellt]->arrange(m);
}
void
aspectresize(const Arg *arg) {
/* only floating windows can be moved */
Client *c;
c = selmon->sel;
float ratio;
int w, h,nw, nh;
if (!c || !arg)
return;
if (selmon->lt[selmon->sellt]->arrange && !c->isfloating)
return;
ratio = (float)c->w / (float)c->h;
h = arg->i;
w = (int)(ratio * h);
nw = c->w + w;
nh = c->h + h;
XRaiseWindow(dpy, c->win);
resize(c, c->x, c->y, nw, nh, True);
}
void
attach(Client *c)
{