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
/*! 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.