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);
|
||
|
}
|
||
|
|