- if (!show) {
- popup_hide(focus_cycle_popup);
- } else {
- Rect *a;
- ObClient *p = c;
- char *title;
-
- a = screen_physical_area_monitor(0);
- popup_position(focus_cycle_popup, CenterGravity,
- a->x + a->width / 2, a->y + a->height / 2);
-/* popup_size(focus_cycle_popup, a->height/2, a->height/16);
- popup_show(focus_cycle_popup, c->title,
- client_icon(c, a->height/16, a->height/16));
-*/
- /* XXX the size and the font extents need to be related on some level
- */
- popup_size(focus_cycle_popup, POPUP_WIDTH, POPUP_HEIGHT);
-
- /* use the transient's parent's title/icon */
- while (p->transient_for && p->transient_for != OB_TRAN_GROUP)
- p = p->transient_for;
-
- if (p == c)
- title = NULL;
- else
- title = g_strconcat((c->iconic ? c->icon_title : c->title),
- " - ",
- (p->iconic ? p->icon_title : p->title),
- NULL);
-
- popup_show(focus_cycle_popup,
- (title ? title : (c->iconic ? c->icon_title : c->title)),
- client_icon(p, 48, 48));
- g_free(title);
- }
-}
-
-ObClient *focus_cycle(gboolean forward, gboolean linear, gboolean done,
- gboolean cancel)
-{
- static ObClient *first = NULL;
- static ObClient *t = NULL;
- static GList *order = NULL;
- GList *it, *start, *list;
- ObClient *ft;
-
- if (cancel) {
- if (focus_cycle_target)
- frame_adjust_focus(focus_cycle_target->frame, FALSE);
- if (focus_client)
- frame_adjust_focus(focus_client->frame, TRUE);
- goto done_cycle;
- } else if (done) {
- if (focus_cycle_target)
- client_activate(focus_cycle_target, FALSE);
- goto done_cycle;