-
- lt = c->frame->area.y;
- rb = lt + c->frame->area.height - 1;
-
- /* snap to other windows */
- if (window_resist.bool) {
- for (it = stacking_list; !snapy && it != NULL; it = it->next) {
- t = it->data;
-
- /* don't snap to invisibles or ourself */
- if (!t->frame->visible || t == c) continue;
-
- switch (corn) {
- case Corner_TopLeft:
- case Corner_TopRight:
- dlt = lt;
- drb = rb + *h - c->frame->area.height;
- tlt = t->frame->area.y;
- if (rb < tlt && drb >= tlt && drb < tlt + resist.integer)
- *h = tlt - lt, snapy = t;
- break;
- case Corner_BottomLeft:
- case Corner_BottomRight:
- dlt = lt - *h + c->frame->area.height;
- drb = rb;
- trb = t->frame->area.y + t->frame->area.height - 1;
- if (lt > trb && dlt <= trb && dlt > trb - resist.integer)
- *h = rb - trb, snapy = t;
- break;
- }
- }
- }
-
- /* snap to screen edges */