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