-/* recalculate menu position in respect to its parent */
-static void
-recalcmenu(struct Menu *menu)
-{
- XWindowAttributes parentwin;
-
- if (menu->parent == NULL)
- return;
-
- XGetWindowAttributes(dpy, menu->parent->win, &parentwin);
-
- if (screengeom.screenw - (parentwin.x + menu->parent->w + geom.border) >= menu->w)
- menu->x = parentwin.x + menu->parent->w + geom.border;
- else if (parentwin.x > menu->w + geom.border)
- menu->x = parentwin.x - menu->w - geom.border;
-
- if (screengeom.screenh - (menu->caller->y + parentwin.y) > menu->h)
- menu->y = menu->caller->y + parentwin.y;
- else if (screengeom.screenh - parentwin.y > menu->h)
- menu->y = parentwin.y;
- else if (screengeom.screenh > menu->h)
- menu->y = screengeom.screenh - menu->h;
-
- XMoveWindow(dpy, menu->win, menu->x, menu->y);
-}
-