X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=eec1b7546a8db7b76dadaa44a2330d6959a06035;hb=cadab91e522c6426cc79df4f06e7c05232cb0a64;hp=fe37a7d7c8ef2592043d06e2cdead13da3a64c35;hpb=1aa0bc66eb45ba466d1d071d0e6c13631331e091;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index fe37a7d7..eec1b754 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. */ @@ -106,13 +111,13 @@ struct _ObClient 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 @@ -120,7 +125,7 @@ struct _ObClient 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, @@ -395,8 +400,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 +468,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.
@@ -469,4 +480,6 @@ void client_set_layer(ObClient *self, int layer); guint client_monitor(ObClient *self); +gchar* client_get_sm_client_id(ObClient *self); + #endif