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 */
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 */
focus_cycle_target_valid(c, iconic_windows, all_desktops, FALSE,
FALSE))
{
focus_cycle_target_valid(c, iconic_windows, all_desktops, FALSE,
FALSE))
{
(client_helper(ft) &&
/* ...a window in its group already has focus ... */
((focus_client && ft->group == focus_client->group) ||
(client_helper(ft) &&
/* ...a window in its group already has focus ... */
((focus_client && ft->group == focus_client->group) ||
gboolean linear, gboolean interactive,
gboolean dialog, gboolean done, gboolean cancel)
{
gboolean linear, gboolean interactive,
gboolean dialog, gboolean done, gboolean cancel)
{
static ObClient *t = NULL;
static GList *order = NULL;
GList *it, *start, *list;
static ObClient *t = NULL;
static GList *order = NULL;
GList *it, *start, *list;
focus_cycle_all_desktops = all_desktops;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
focus_cycle_all_desktops = all_desktops;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
if (!start) /* switched desktops or something? */
start = it = forward ? g_list_last(list) : g_list_first(list);
if (!start) goto done_cycle;
if (!start) /* switched desktops or something? */
start = it = forward ? g_list_last(list) : g_list_first(list);
if (!start) goto done_cycle;
continue;
if (!focus_cycle_target_valid(it->data, FALSE, FALSE, dock_windows,
desktop_windows))
continue;
if (!focus_cycle_target_valid(it->data, FALSE, FALSE, dock_windows,
desktop_windows))
- if(dir == OB_DIRECTION_NORTHEAST || dir == OB_DIRECTION_SOUTHEAST ||
- dir == OB_DIRECTION_SOUTHWEST || dir == OB_DIRECTION_NORTHWEST) {
+ if (dir == OB_DIRECTION_NORTHEAST || dir == OB_DIRECTION_SOUTHEAST ||
+ dir == OB_DIRECTION_SOUTHWEST || dir == OB_DIRECTION_NORTHWEST)
+ {
gint tx;
/* Rotate the diagonals 45 degrees counterclockwise.
* To do this, multiply the matrix /+h +h\ with the
gint tx;
/* Rotate the diagonals 45 degrees counterclockwise.
* To do this, multiply the matrix /+h +h\ with the
/* windows more than 45 degrees off the direction are
* heavily penalized and will only be chosen if nothing
* else within a million pixels */
/* windows more than 45 degrees off the direction are
* heavily penalized and will only be chosen if nothing
* else within a million pixels */
focus_cycle_all_desktops = FALSE;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
focus_cycle_all_desktops = FALSE;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
if (focus_cycle_target)
ft = focus_find_directional(focus_cycle_target, dir, dock_windows,
desktop_windows);
if (focus_cycle_target)
ft = focus_find_directional(focus_cycle_target, dir, dock_windows,
desktop_windows);
- if (ft) {
- if (ft != focus_cycle_target) {/* prevents flicker */
- focus_cycle_target = ft;
- focus_cycle_draw_indicator(ft);
- }
+ if (ft && ft != focus_cycle_target) {/* prevents flicker */
+ focus_cycle_target = ft;
+ if (!interactive)
+ goto done_cycle;
+ focus_cycle_draw_indicator(ft);
/* 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);
/* 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);