+ {
+ /* Constraint such that at least min(size, CF_VISIBILITY_CONSTRAINT)
+ * much is visible at each border.
+ */
+ int dx=maxof(0, tmp.w-CF_VISIBILITY_CONSTRAINT);
+ int dy=maxof(0, tmp.h-CF_VISIBILITY_CONSTRAINT);
+ tmp.x=maxof(fp->g.x-dx, minof(tmp.x, fp->g.x+fp->g.w+dx-tmp.w));
+ tmp.y=maxof(fp->g.y-dy, minof(tmp.y, fp->g.y+fp->g.h+dy-tmp.h));
+ }