26 lines
413 B
C
26 lines
413 B
C
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);
|
|
}
|
|
|