be used
*/
if (focus_cycle_target == client)
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
}
static Window createWindow(Window parent, gulong mask,
be used.
*/
if (focus_cycle_target)
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
focus_client = client;
}
}
-static gboolean valid_focus_target(ObClient *ft, gboolean dock_windows)
+static gboolean valid_focus_target(ObClient *ft,
+ gboolean all_desktops,
+ gboolean dock_windows)
{
gboolean ok = FALSE;
/* we don't use client_can_focus here, because that doesn't let you
ft->type == OB_CLIENT_TYPE_MENU || /* being allowed to target */
ft->type == OB_CLIENT_TYPE_UTILITY)) /* one of these, don't let */
ok = ok && !ft->skip_taskbar; /* skip taskbar stop us */
- ok = ok && (ft->desktop == screen_desktop || ft->desktop == DESKTOP_ALL);
+ if (!all_desktops)
+ ok = ok && (ft->desktop == screen_desktop ||
+ ft->desktop == DESKTOP_ALL);
ok = ok && ft == client_focus_target(ft);
return ok;
/*
*/
}
-void focus_cycle(gboolean forward, gboolean dock_windows,
+void focus_cycle(gboolean forward, gboolean all_desktops,
+ gboolean dock_windows,
gboolean linear, gboolean interactive,
gboolean dialog, gboolean done, gboolean cancel)
{
if (it == NULL) it = g_list_last(list);
}
ft = it->data;
- if (valid_focus_target(ft, dock_windows)) {
+ if (valid_focus_target(ft, all_desktops, dock_windows)) {
if (interactive) {
if (ft != focus_cycle_target) { /* prevents flicker */
focus_cycle_target = ft;
GList *it;
for (it = focus_order; it; it = g_list_next(it))
- if (valid_focus_target(it->data, dock_windows))
+ if (valid_focus_target(it->data, FALSE, dock_windows))
ft = it->data;
}