X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=9f208596f2fe6261fc2573b09b289e5c80bcbe19;hb=8eea9dcdb77e004e67c23061eaecce26e8cd4e68;hp=98f9e6e41afd9441537c3daf5a5c1430b868fed8;hpb=94140a4b359d5e570a8a886dc359d64f5fcaaf86;p=chaz%2Fopenbox
diff --git a/openbox/client.h b/openbox/client.h
index 98f9e6e4..9f208596 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -379,16 +379,21 @@ void client_convert_gravity_resize(ObClient *self, gint gravity,
gint w, gint h);
#define client_move(self, x, y) \
- client_configure(self, x, y, self->area.width, self->area.height, TRUE, TRUE)
+ client_configure(self, x, y, self->area.width, self->area.height, TRUE, TRUE,\
+ FALSE)
#define client_resize(self, w, h) \
- client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE)
+ client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE)
#define client_move_resize(self, x, y, w, h) \
- client_configure(self, x, y, w, h, TRUE, TRUE)
+ client_configure(self, x, y, w, h, TRUE, TRUE, FALSE)
+#define client_reconfigure(self, force) \
+ client_configure(self, ((ObClient*)self)->area.x, ((ObClient*)self)->area.y, \
+ ((ObClient*)self)->area.width, \
+ ((ObClient*)self)->area.height, FALSE, TRUE, force)
/*! Figure out where a window will end up and what size it will be if you
told it to move/resize to these coordinates.
- These values are what client_configure_full will give the window.
+ These values are what client_configure will give the window.
@param x The x coordiante of the new position for the client.
@param y The y coordiante of the new position for the client.
@@ -422,12 +427,10 @@ void client_try_configure(ObClient *self, gint *x, gint *y, gint *w, gint *h,
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.
+ the position/size changed.
*/
void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
- gboolean user, gboolean final);
-
-void client_reconfigure(ObClient *self);
+ gboolean user, gboolean final, gboolean force_reply);
/*! Finds coordinates to keep a client on the screen.
@param self The client
@@ -452,6 +455,18 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
*/
void client_move_onscreen(ObClient *self, gboolean rude);
+/*! dir is either North, South, East or West. It can't be, for example,
+ Northwest */
+void client_find_edge_directional(ObClient *self, ObDirection dir,
+ gint my_head, gint my_tail,
+ gint my_edge_start, gint my_edge_size,
+ 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);
+
/*! Fullscreen's or unfullscreen's the client window
@param fs true if the window should be made fullscreen; false if it should
be returned to normal state.
@@ -496,8 +511,11 @@ void client_kill(ObClient *self);
/*! Sends the window to the specified desktop
@param donthide If TRUE, the window will not be shown/hidden after its
desktop has been changed. Generally this should be FALSE.
+ @param dontraise If TRUE, the window will not be raised. Generally this should
+ be FALSE.
*/
-void client_set_desktop(ObClient *self, guint target, gboolean donthide);
+void client_set_desktop(ObClient *self, guint target, gboolean donthide,
+ gboolean dontraise);
/*! Show the client if it should be shown. Returns if the window is shown. */
gboolean client_show(ObClient *self);
@@ -544,10 +562,13 @@ gboolean client_focus(ObClient *self);
when the user deliberately selects a window for use.
@param here If true, then the client is brought to the current desktop;
otherwise, the desktop is changed to where the client lives.
+ @param raise If true, the client is brought to the front.
+ @param unshade If true, the client is unshaded (if it is shaded)
@param user If true, then a user action is what requested the activation;
otherwise, it means an application requested it on its own
*/
-void client_activate(ObClient *self, gboolean here, gboolean user);
+void client_activate(ObClient *self, gboolean here, gboolean raise,
+ gboolean unshade, gboolean user);
/*! Bring all of its helper windows to its desktop. These are the utility and
stuff windows. */
@@ -605,6 +626,8 @@ void client_get_type_and_transientness(ObClient *self);
const ObClientIcon *client_icon(ObClient *self, gint w, gint h);
+ObClientIcon *client_thumbnail(ObClient *self, gint w, gint h);
+
/*! Return TRUE if the client is transient for some other window. Return
FALSE if it's not transient or there is no window for it to be
transient for */
@@ -673,9 +696,6 @@ ObClient *client_search_parent(ObClient *self, ObClient *search);
NULL is returned if the given search is not a transient of the client. */
ObClient *client_search_transient(ObClient *self, ObClient *search);
-/*! Return the closest edge in the given direction */
-gint client_directional_edge_search(ObClient *c, ObDirection dir, gboolean hang);
-
/*! 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.
@@ -689,4 +709,6 @@ ObClient* client_under_pointer();
gboolean client_has_group_siblings(ObClient *self);
+void clienticon_free(ObClientIcon *ci);
+
#endif