]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
track window groups
[chaz/openbox] / openbox / client.h
index 2838535100b29fa2cf22ac46d32e1e646e91aa8e..1e801dc4cf9dc8020ff607001e79abf997f5af7e 100644 (file)
@@ -7,7 +7,7 @@
 #include <X11/Xlib.h>
 
 struct Frame;
-
+struct Group;
 
 /*! Holds an icon in ARGB format */
 typedef struct Icon {
@@ -114,7 +114,7 @@ typedef struct Client {
     int ignore_unmaps;
 
     /*! The id of the group the window belongs to */
-    Window  group;
+    struct Group *group;
     /*! Whether or not the client is a transient window. This is guaranteed to 
       be TRUE if transient_for != NULL, but not guaranteed to be FALSE if
       transient_for == NULL. */
@@ -285,7 +285,7 @@ typedef struct Client {
     Pixmap pixmap_icon_mask;
 } Client;
 
-extern GSList *client_list;
+extern GList *client_list;
 extern GHashTable *client_map;
 
 void client_startup();
@@ -410,6 +410,14 @@ void client_set_wm_state(Client *self, long state);
 */
 void client_set_state(Client *self, Atom action, long data1, long data2);
 
+/* Given a Client, find the client that focus would actually be sent to if
+   you wanted to give focus to the specified Client. Will return the same
+   Client passed to it or another Client if appropriate. */
+Client *client_focus_target(Client *self);
+
+/* Returns if a client can be focused or not */
+gboolean client_focusable(Client *self);
+
 /*! Attempt to focus the client window */
 gboolean client_focus(Client *self);
 
This page took 0.020697 seconds and 4 git commands to generate.