X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=654945b91b6592cce94d3f4ecfc9f89b3da16eff;hb=e0409cd7940c136897ddf31e92fe5fdde4bee003;hp=2863a98f5dde5a1d7059c506a74664303e8c631f;hpb=7ffa091d5b464ce508023c3b5e5bc50a36be53fb;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index 2863a98f..654945b9 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -300,10 +300,17 @@ extern GList *client_list; void client_startup(gboolean reconfig); void client_shutdown(gboolean reconfig); -typedef void (*ObClientDestructor)(ObClient *client, gpointer data); +typedef void (*ObClientCallback)(ObClient *client, gpointer data); -void client_add_destructor(ObClientDestructor func, gpointer data); -void client_remove_destructor(ObClientDestructor func); +/* 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 changes desktop */ +void client_add_desktop_notify(ObClientCallback func, gpointer data); +void client_remove_desktop_notify(ObClientCallback func); /*! Manages all existing windows */ void client_manage_all(); @@ -327,10 +334,20 @@ gboolean client_should_show(ObClient *self); to them in a number of places regarding focus or user interaction. */ gboolean client_normal(ObClient *self); -/*! Returns if the window is one of an application's main windows (normal or - dialog type) rather than an accessory window (utilty, menu, etc) or a - non-normal window */ -gboolean client_application(ObClient *self); +/*! Returns if the window is one of an application's helper windows + (utilty, menu, etc) */ +gboolean client_helper(ObClient *self); + +/*! Return if the client is a type which should be given focus from mouse + presses on the *client* window. This doesn't affect clicking on the + decorations. This doesn't count for focus cycling, different rules apply to + that. */ +gboolean client_mouse_focusable(ObClient *self); + +/*! Return if the client is a type which should be given focus from the + mouse entering the window. This doesn't count for focus cycling, different + rules apply to that. */ +gboolean client_enter_focusable(ObClient *self); /* Returns if the window is focused */ gboolean client_focused(ObClient *self); @@ -458,7 +475,8 @@ 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. */ + desktop has been changed. Generally this should be FALSE. +*/ void client_set_desktop(ObClient *self, guint target, gboolean donthide); /*! Show the client if it should be shown. */ @@ -513,6 +531,10 @@ gboolean client_focus(ObClient *self); */ void client_activate(ObClient *self, gboolean here, gboolean user); +/*! Bring all of its helper windows to its desktop. These are the utility and + stuff windows. */ +void client_bring_helper_windows(ObClient *client); + /*! Calculates the stacking layer for the client window */ void client_calc_layer(ObClient *self); @@ -558,10 +580,6 @@ void client_update_normal_hints(ObClient *self); void client_update_wmhints(ObClient *self); /*! Updates the window's title and icon title */ void client_update_title(ObClient *self); -/*! Updates the command used to run the program */ -void client_update_command(ObClient *self); -/*! Updates the window's application name and class */ -void client_update_class(ObClient *self); /*! Updates the strut for the client */ void client_update_strut(ObClient *self); /*! Updates the window's icons */ @@ -650,12 +668,8 @@ void client_set_undecorated(ObClient *self, gboolean undecorated); guint client_monitor(ObClient *self); -void client_update_sm_client_id(ObClient *self); - ObClient* client_under_pointer(); gboolean client_has_group_siblings(ObClient *self); -gboolean client_has_application_group_siblings(ObClient *self); - #endif