struct _ObFrame;
struct _ObGroup;
+struct _ObSessionState;
typedef struct _ObClient ObClient;
typedef struct _ObClientIcon ObClientIcon;
/*! 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. */
is, rather, the position requested by the client, to which the window's
gravity is applied.
*/
- Rect area;
+ Rect area;
/*! The window's strut
The strut defines areas of the screen that are marked off-bounds for
window placement. In theory, where this window exists.
*/
- Strut strut;
+ StrutPartial strut;
/*! The logical size of the window
The "logical" size of the window is refers to the user's perception of
user. For example, with xterms, this value it the number of characters
being displayed in the terminal, instead of the number of pixels.
*/
- Size logical_size;
+ Size logical_size;
/*! Width of the border on the window.
The window manager will set this to 0 while the window is being managed,
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);
/*! 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.<br>
= 0 indicates the client should be placed with other clients.<br>
guint client_monitor(ObClient *self);
+gchar* client_get_sm_client_id(ObClient *self);
+
#endif