X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=758851e1432dc143073b8f76454f6319151c9047;hb=49d58ec9ba5380f97a4524edf5d5925ea5aa6180;hp=954b7424acece579c27ccacde16fc8736d22b7df;hpb=4cd886e5188549ab48a11b70cb40b65efe916b6c;p=chaz%2Fopenbox
diff --git a/openbox/client.h b/openbox/client.h
index 954b7424..758851e1 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -12,6 +12,7 @@
struct _ObFrame;
struct _ObGroup;
+struct _ObSessionState;
typedef struct _ObClient ObClient;
typedef struct _ObClientIcon ObClientIcon;
@@ -67,6 +68,10 @@ struct _ObClient
/*! The id of the group the window belongs to */
struct _ObGroup *group;
+
+ /*! Saved session data to apply to this client */
+ struct _ObSessionState *session;
+
/*! 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. */
@@ -238,6 +243,11 @@ extern GList *client_list;
void client_startup();
void client_shutdown();
+typedef void (*ObClientDestructorFunc)(ObClient *c);
+
+void client_add_destructor(ObClientDestructorFunc func);
+void client_remove_destructor(ObClientDestructorFunc func);
+
/*! Manages all existing windows */
void client_manage_all();
/*! Manages a given window */
@@ -395,8 +405,11 @@ gboolean client_focus(ObClient *self);
void client_unfocus(ObClient *self);
/*! Activates the client for use, focusing, uniconifying it, etc. To be used
- when the user deliberately selects a window for use. */
-void client_activate(ObClient *self);
+ when the user deliberately selects a window for use.
+ @param here If true, then the client is brought to the current desktop;
+ otherwise, the desktop is changed to where the client lives.
+*/
+void client_activate(ObClient *self, gboolean here);
/*! Calculates the stacking layer for the client window */
void client_calc_layer(ObClient *self);
@@ -460,6 +473,9 @@ ObClient *client_search_transient(ObClient *self, ObClient *search);
/*! Return the "closest" client in the given direction */
ObClient *client_find_directional(ObClient *c, ObDirection dir);
+/*! Return the closest edge in the given direction */
+int client_directional_edge_search(ObClient *c, ObDirection dir);
+
/*! Set a client window to be above/below other clients.
@layer < 0 indicates the client should be placed below other clients.
= 0 indicates the client should be placed with other clients.