/*! The client which is currently focused */
extern struct _ObClient *focus_client;
-/*! The client which appears focused during a focus cycle operation */
-extern struct _ObClient *focus_cycle_target;
/*! The recent focus order on each desktop */
extern GList *focus_order;
void focus_set_client(struct _ObClient *client);
/*! Focus nothing, but let keyboard events be caught. */
-void focus_nothing();
-
-struct _ObClient* focus_fallback_target(gboolean allow_refocus,
- struct _ObClient *old);
+void focus_nothing(void);
/*! Call this when you need to focus something! */
-void focus_fallback(gboolean allow_refocus);
-
-/*! Cycle focus amongst windows. */
-void focus_cycle(gboolean forward, gboolean dock_windows,
- gboolean linear, gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel);
-void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
- gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel);
-void focus_cycle_draw_indicator();
+struct _ObClient* focus_fallback(gboolean allow_refocus,
+ gboolean allow_pointer,
+ gboolean allow_omnipresent,
+ gboolean focus_lost);
/*! Add a new client into the focus order */
void focus_order_add_new(struct _ObClient *c);
struct _ObClient *focus_order_find_first(guint desktop);
+gboolean focus_valid_target(struct _ObClient *ft,
+ gboolean helper_windows,
+ gboolean iconic_windows,
+ gboolean all_desktops,
+ gboolean dock_windows,
+ gboolean desktop_windows,
+ gboolean user_request);
+
#endif