X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=1467ecd1d537a0973f0dde23e2ea5cd88ead73b1;hb=83da4ec9398d197f39461cd7305163b2676840c8;hp=1a2273f461193f94c84378ab84fa6699f64cd84a;hpb=685dca1c5fb1fac160ad845a710bc2c30ff87751;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index 1a2273f4..1467ecd1 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -71,13 +71,15 @@ typedef enum OB_CLIENT_FUNC_MAXIMIZE = 1 << 3, /*!< Allow to be maximized */ OB_CLIENT_FUNC_SHADE = 1 << 4, /*!< Allow to be shaded */ OB_CLIENT_FUNC_FULLSCREEN = 1 << 5, /*!< Allow to be made fullscreen */ - OB_CLIENT_FUNC_CLOSE = 1 << 6 /*!< Allow to be closed */ + OB_CLIENT_FUNC_CLOSE = 1 << 6, /*!< Allow to be closed */ + OB_CLIENT_FUNC_ABOVE = 1 << 7, /*!< Allow to be put in lower layer */ + OB_CLIENT_FUNC_BELOW = 1 << 8, /*!< Allow to be put in higher layer */ + OB_CLIENT_FUNC_UNDECORATE = 1 << 9 /*!< Allow to be undecorated */ } ObFunctions; struct _ObClient { ObWindow obwin; - Window window; /*! The window's decorations. NULL while the window is being managed! */ @@ -309,12 +311,8 @@ typedef void (*ObClientCallback)(ObClient *client, gpointer data); /* Callback functions */ /*! Get notified when the client is unmanaged */ -void client_add_destructor(ObClientCallback func, gpointer data); -void client_remove_destructor(ObClientCallback func); - -/*! Get notified when the client is hidden */ -void client_add_hide_notify(ObClientCallback func, gpointer data); -void client_remove_hide_notify(ObClientCallback func); +void client_add_destroy_notify(ObClientCallback func, gpointer data); +void client_remove_destroy_notify(ObClientCallback func); /*! Manages all existing windows */ void client_manage_all(); @@ -371,16 +369,12 @@ void client_convert_gravity(ObClient *self, gint gravity, gint *x, gint *y, 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) #define client_resize(self, w, h) \ client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE) #define client_move_resize(self, x, y, w, h) \ client_configure(self, x, y, w, h, TRUE, TRUE) -#define client_configure(self, x, y, w, h, user, final) \ - client_configure_full(self, x, y, w, h, user, final) - /*! Figure out where a window will end up and what size it will be if you told it to move/resize to these coordinates. @@ -420,8 +414,8 @@ void client_try_configure(ObClient *self, gint *x, gint *y, gint *w, gint *h, @param force_reply Send a ConfigureNotify to the client regardless of if the position changed. */ -void client_configure_full(ObClient *self, gint x, gint y, gint w, gint h, - gboolean user, gboolean final); +void client_configure(ObClient *self, gint x, gint y, gint w, gint h, + gboolean user, gboolean final); void client_reconfigure(ObClient *self); @@ -495,11 +489,11 @@ void client_kill(ObClient *self); */ void client_set_desktop(ObClient *self, guint target, gboolean donthide); -/*! Show the client if it should be shown. */ -void client_show(ObClient *self); +/*! Show the client if it should be shown. Returns if the window is shown. */ +gboolean client_show(ObClient *self); -/*! Show the client if it should be shown. */ -void client_hide(ObClient *self); +/*! Show the client if it should be shown. Returns if the window is hidden. */ +gboolean client_hide(ObClient *self); /*! Show the client if it should be shown, and hide it if it should be hidden. This is for example, when switching desktops. @@ -533,9 +527,7 @@ ObClient *client_focus_target(ObClient *self); without focusing it or modifying the focus order lists. */ gboolean client_can_focus(ObClient *self); -/*! Attempt to focus the client window - NOTE: You should validate the client before calling this !! (client_validate) -*/ +/*! Attempt to focus the client window */ gboolean client_focus(ObClient *self); /*! Activates the client for use, focusing, uniconifying it, etc. To be used