gchar *class;
/*! The specified role of the window, used for identification */
gchar *role;
+ /*! The application that created the window's group. */
+ gchar *group_name;
+ /*! The class of the window's group, can used for grouping */
+ gchar *group_class;
/*! The session client id for the window. *This can be NULL!* */
gchar *sm_client_id;
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 */
/*! Get notified when the client is unmanaged */
void client_add_destroy_notify(ObClientCallback func, gpointer data);
void client_remove_destroy_notify(ObClientCallback func);
+void client_remove_destroy_notify_data(ObClientCallback func, gpointer data);
/*! Manages a given window
@param prompt This specifies an ObPrompt which is being managed. It is
(utilty, menu, etc) */
gboolean client_helper(ObClient *self);
+/*! Returns true if the window occupies space in the monitor conceptually, or
+ false if it does not and its presence should be ignored when possible. */
+gboolean client_occupies_space(ObClient *self);
+
/*! Return if the client is a type which should be given focus from mouse
presses on the *client* window. This doesn't affect clicking on the
decorations. This doesn't count for focus cycling, different rules apply to
/*! 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);
+gboolean client_is_oldfullscreen(const ObClient *self, const Rect *area);
/*! Iconifies or uniconifies the client window
@param iconic true if the window should be iconified; false if it should be
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);
#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);
/*! Updates the window's icon geometry (where to iconify to/from) */
void client_update_icon_geometry(ObClient *self);
+/*! Helper function to convert the ->type member to string representation */
+const gchar *client_type_to_string(ObClient *self);
+
/*! Set up what decor should be shown on the window and what functions should
be allowed (ObClient::decorations and ObClient::functions).
This also updates the NET_WM_ALLOWED_ACTIONS hint.