]> icculus.org git repositories - mikachu/openbox.git/blob - openbox/focus.h
fallback to transients' parents when possible.
[mikachu/openbox.git] / openbox / focus.h
1 #ifndef __focus_h
2 #define __focus_h
3
4 #include <X11/Xlib.h>
5 #include <glib.h>
6
7 struct Client;
8
9 /*! The window which gets focus when nothing else will be focused */
10 extern Window focus_backup;
11
12 /*! The client which is currently focused */
13 extern struct Client *focus_client;
14
15 /*! The recent focus order on each desktop */
16 extern GList **focus_order;
17
18 /*! Should new windows be focused */
19 extern gboolean focus_new;
20 /*! Focus windows when the mouse enters them */
21 extern gboolean focus_follow;
22
23 void focus_startup();
24 void focus_shutdown();
25
26 /*! Specify which client is currently focused, this doesn't actually
27   send focus anywhere, its called by the Focus event handlers */
28 void focus_set_client(struct Client *client);
29
30 /*! Call this when you need to focus something! */
31 void focus_fallback(gboolean switching_desks);
32
33 /*! Cycle focus amongst windows
34   Returns the Client to which focus has been cycled, or NULL if none. */
35 struct Client *focus_cycle(gboolean forward, gboolean linear, gboolean done,
36                            gboolean cancel);
37
38 #endif