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;
gint *dest, gboolean *near_edge);
void client_find_move_directional(ObClient *self, ObDirection dir,
gint *x, gint *y);
-void client_find_resize_directional(ObClient *self, ObDirection side,
- gboolean grow,
- gint *x, gint *y, gint *w, gint *h);
+
+typedef enum {
+ CLIENT_RESIZE_GROW,
+ CLIENT_RESIZE_GROW_IF_NOT_ON_EDGE,
+ CLIENT_RESIZE_SHRINK,
+} ObClientDirectionalResizeType;
+
+/*! Moves the client area passed in to grow/shrink the given edge.
+ @return TRUE if any change was made to the client area.
+*/
+gboolean client_find_resize_directional(
+ ObClient *self,
+ ObDirection side,
+ ObClientDirectionalResizeType resize_type,
+ gint *x, gint *y, gint *w, gint *h);
/*! Fullscreen's or unfullscreen's the client window
@param fs true if the window should be made fullscreen; false if it should
/*! 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
/*! 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.