X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=dba6786e48dda7f393a31fa2b9bb789573def4f0;hb=f4979de3f5257bf70591d4ccf0ecab7da567b27d;hp=4421f8fe3e4f4af048076b0699432ddb70f9dbb8;hpb=950516124f49000bd8df0481df0c54a14a05b7f9;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index 4421f8fe..dba6786e 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -106,13 +106,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 +120,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, @@ -263,6 +263,9 @@ gboolean client_normal(ObClient *self); /* Returns if the window is focused */ gboolean client_focused(ObClient *self); +#define client_configure(self, anchor, x, y, w, h, user, final) \ + client_configure_full(self, anchor, x, y, w, h, user, final, FALSE) + /*! Move and/or resize the window. This also maintains things like the client's minsize, and size increments. @param anchor The corner to keep in the same position when resizing. @@ -277,10 +280,13 @@ gboolean client_focused(ObClient *self); configuration. e.g. Final should be FALSE if doing an interactive move/resize, and then be TRUE for the last call only. + @param force_reply Send a ConfigureNotify to the client regardless of if + the position changed. */ -void client_configure(ObClient *self, ObCorner anchor, - int x, int y, int w, int h, - gboolean user, gboolean final); +void client_configure_full(ObClient *self, ObCorner anchor, + int x, int y, int w, int h, + gboolean user, gboolean final, + gboolean force_reply); void client_reconfigure(ObClient *self); @@ -454,6 +460,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.
@@ -463,4 +472,6 @@ void client_set_layer(ObClient *self, int layer); guint client_monitor(ObClient *self); +gchar* client_get_sm_client_id(ObClient *self); + #endif