X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=99fdfd053fc3a99811bc3a16c23c38a32658b9de;hb=32c93f09f03bd2d7c7bf3408febbe9fa7f8dd1cc;hp=a361e3670be8e821add501efc00e2e415f4dc24b;hpb=73575c10ce3ede1637e4f959b56e1f7d5f110b91;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index a361e367..99fdfd05 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -73,6 +73,7 @@ struct _ObClient { ObWindow obwin; Window window; + gboolean managed; /*! If this client is managing an ObPrompt window, then this is set to the prompt */ @@ -146,6 +147,9 @@ struct _ObClient Rect pre_max_area; /*! Position and size of the window prior to being fullscreened */ Rect pre_fullscreen_area; + /*! Remember if the window was maximized before going fullscreen */ + gboolean pre_fullscreen_max_horz, + pre_fullscreen_max_vert; /*! The window's strut The strut defines areas of the screen that are marked off-bounds for @@ -260,6 +264,8 @@ struct _ObClient gboolean max_vert; /*! The window is maximized to fill the screen horizontally */ gboolean max_horz; + /*! The window is semi-transparent */ + guint8 opacity; /*! The window should not be displayed by pagers */ gboolean skip_pager; /*! The window should not be displayed by taskbars */ @@ -486,6 +492,11 @@ void client_find_resize_directional(ObClient *self, ObDirection side, */ void client_fullscreen(ObClient *self, gboolean fs); +/*! Determine if the window, using the given client-area, would be considered + as an "oldschool fullscreen" window, that is, if it is filling a whole + monitor. */ +gboolean client_is_oldfullscreen(const ObClient const *self, const Rect *area); + /*! Iconifies or uniconifies the client window @param iconic true if the window should be iconified; false if it should be restored. @@ -530,6 +541,9 @@ void client_kill(ObClient *self); void client_set_desktop(ObClient *self, guint target, gboolean donthide, gboolean dontraise); +/*! Adjust the client opacity */ +void client_set_opacity(ObClient *self, guint8 opacity); + /*! Show the client if it should be shown. Returns if the window is shown. */ gboolean client_show(ObClient *self); @@ -607,6 +621,8 @@ void client_update_sync_request_counter(ObClient *self); #endif /*! Updates the window's colormap */ void client_update_colormap(ObClient *self, Colormap colormap); +/*! Updates the requested opacity for the window from the client. */ +void client_update_opacity(ObClient *self); /*! Updates the WMNormalHints and adjusts things if they change */ void client_update_normal_hints(ObClient *self); @@ -648,6 +664,10 @@ RrImage* client_icon(ObClient *self); transient for */ gboolean client_has_parent(ObClient *self); +/*! Return TRUE if the client has some transient children, and FALSE otherwise. +*/ +gboolean client_has_children(ObClient *self); + /*! Searches a client's immediate parents for a focused window. The function does not check for the passed client, only for *ONE LEVEL* of its parents. If no focused parent is found, NULL is returned. @@ -732,6 +752,11 @@ ObClient* client_under_pointer(void); gboolean client_has_group_siblings(ObClient *self); +/*! Returns TRUE if the client has a transient child, a parent, or a + group member. Returns FALSE otherwise. +*/ +gboolean client_has_relative(ObClient *self); + /*! Returns TRUE if the client is running on the same machine as Openbox */ gboolean client_on_localhost(ObClient *self);