void focus_cycle_popup_startup(gboolean reconfig);
void focus_cycle_popup_shutdown(gboolean reconfig);
-void focus_cycle_popup_show(struct _ObClient *c, gboolean iconic_windows,
- gboolean all_desktops, gboolean dock_windows,
- gboolean desktop_windows,
- ObFocusCyclePopupMode mode);
+void focus_cycle_popup_show(struct _ObClient *c, ObFocusCyclePopupMode mode,
+ gboolean linear);
void focus_cycle_popup_hide(void);
-void focus_cycle_popup_single_show(struct _ObClient *c,
- gboolean iconic_windows,
- gboolean all_desktops,
- gboolean dock_windows,
- gboolean desktop_windows);
+void focus_cycle_popup_single_show(struct _ObClient *c);
void focus_cycle_popup_single_hide(void);
-/*! Returns TRUE if the popup is showing the client, otherwise FALSE. */
-gboolean focus_cycle_popup_is_showing(struct _ObClient *client);
+gboolean focus_cycle_popup_is_showing(struct _ObClient *c);
+
+/*! Redraws the focus cycle popup, and returns the current target. If
+ the target given to the function is no longer valid, this will return
+ a different target that is valid, and which should be considered the
+ current focus cycling target. */
+struct _ObClient *focus_cycle_popup_refresh(struct _ObClient *target,
+ gboolean redraw,
+ gboolean linear);
#endif