ObDirection dir,
gboolean dock_windows,
gboolean desktop_windows);
-static ObClient *focus_find_directional (ObClient *c,
- ObDirection dir,
- gboolean dock_windows,
- gboolean desktop_windows);
void focus_cycle_startup(gboolean reconfig)
{
for (it = ft->group->members; it; it = g_slist_next(it)) {
ObClient *c = it->data;
/* check that it's not a helper window to avoid infinite recursion */
- if (c != ft && !client_helper(c) &&
+ if (c != ft && c->type == OB_CLIENT_TYPE_NORMAL &&
focus_cycle_target_valid(c, iconic_windows, all_desktops, FALSE,
FALSE))
{
ok = ok &&
((client_normal(ft) && !client_helper(ft))
||
- /* helper windows are valid targets it... */
+ /* helper windows are valid targets if... */
(client_helper(ft) &&
/* ...a window in its group already has focus ... */
((focus_client && ft->group == focus_client->group) ||
focus_cycle_draw_indicator(ft);
}
}
- if (focus_cycle_target && dialog) {
+ if (focus_cycle_target && dialog)
/* same arguments as focus_target_valid */
focus_cycle_popup_single_show(focus_cycle_target,
focus_cycle_iconic_windows,
focus_cycle_all_desktops,
focus_cycle_dock_windows,
focus_cycle_desktop_windows);
- return;
- }
+ return;
done_cycle:
if (done && focus_cycle_target)