- /* stop focus cycling if the given client is a valid focus target,
- and so the cycling is being disrupted */
- if (focus_cycle_target && ifclient &&
- /* shortcut check, it is what we are pointing at right now */
- (ifclient == focus_cycle_target ||
- /* it's shown but it shouldn't be anymore */
- focus_cycle_popup_is_showing(ifclient) ||
- /* it's not shown but it should be */
- focus_valid_target(ifclient, TRUE,
- focus_cycle_iconic_windows,
- focus_cycle_all_desktops,
- focus_cycle_dock_windows,
- focus_cycle_desktop_windows,
- FALSE)))
- {
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,TRUE);
- focus_directional_cycle(0, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+ if (focus_cycle_type == OB_CYCLE_NORMAL) {
+ focus_cycle_target = focus_cycle_popup_refresh(focus_cycle_target,
+ TRUE,
+ focus_cycle_linear);
+ focus_cycle_update_indicator(focus_cycle_target);
+ if (!focus_cycle_target)
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,
+ TRUE, OB_FOCUS_CYCLE_POPUP_MODE_NONE,
+ TRUE, TRUE);