X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=3d30c6a4605385fc92325663d47a9b665f43e2b5;hb=ebabf3943c926547739254fb67f8024166ea000f;hp=3fab451e0e9747a1d19eb2776cf1b3053991b4f3;hpb=277db2822d79a6000d31b93ec963ae87286d6ade;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index 3fab451e..3d30c6a4 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -118,6 +118,8 @@ struct _ObClient gchar *icon_title; /*! Hostname of machine running the client */ gchar *client_machine; + /*! The command used to run the program. Pre-XSMP window identification. */ + gchar *wm_command; /*! The application that created the window */ gchar *name; @@ -293,41 +295,22 @@ struct _ObClient guint32 user_time; }; -struct _ObAppSettings -{ - gchar *class; - gchar *name; - gchar *role; - - Point position; - gboolean center_x; - gboolean center_y; - gboolean pos_given; - - guint desktop; - gint shade; - gint decor; - gint focus; - gint head; - gint iconic; - gint skip_pager; - gint skip_taskbar; - gint max_horz; - gint max_vert; - gint fullscreen; - - gint layer; -}; - 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); + +/* Callback functions */ -void client_add_destructor(ObClientDestructor func, gpointer data); -void client_remove_destructor(ObClientDestructor func); +/*! 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(); @@ -482,8 +465,13 @@ 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. */ -void client_set_desktop(ObClient *self, guint target, gboolean donthide); + desktop has been changed. Generally this should be FALSE. + @param focus_nonintrusive If TRUE, the window will not be moved in the + focus order at all. Do this when moving windows to a desktop in + the "background" or something. It can be used to make a window share + multiple desktops. Generally this should be FALSE. */ +void client_set_desktop(ObClient *self, guint target, + gboolean donthide, gboolean focus_nonintrusive); /*! Show the client if it should be shown. */ void client_show(ObClient *self); @@ -537,6 +525,10 @@ gboolean client_focus(ObClient *self); */ void client_activate(ObClient *self, gboolean here, gboolean user); +/*! Bring all of its non-application windows to its desktop. These are the + utility and stuff windows. */ +void client_bring_non_application_windows(ObClient *client); + /*! Calculates the stacking layer for the client window */ void client_calc_layer(ObClient *self); @@ -582,8 +574,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 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 */ @@ -672,8 +662,6 @@ 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);