diff options
Diffstat (limited to 'openbox/client.h')
| -rw-r--r-- | openbox/client.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/openbox/client.h b/openbox/client.h index a27d37c6..dbe93d28 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -37,6 +37,7 @@ struct _ObFrame; struct _ObGroup; struct _ObSessionState; +struct _ObPrompt; typedef struct _ObClient ObClient; typedef struct _ObClientIcon ObClientIcon; @@ -82,6 +83,10 @@ struct _ObClient ObWindow obwin; Window window; + /*! If this client is managing an ObPrompt window, then this is set to the + prompt */ + struct _ObPrompt *prompt; + /*! The window's decorations. NULL while the window is being managed! */ struct _ObFrame *frame; @@ -115,6 +120,8 @@ struct _ObClient gchar *title; /*! Window title when iconified */ gchar *icon_title; + /*! The title as requested by the client, without any of our own changes */ + gchar *original_title; /*! Hostname of machine running the client */ gchar *client_machine; /*! The command used to run the program. Pre-XSMP window identification. */ @@ -231,8 +238,11 @@ struct _ObClient /*! Indicates if the client is trying to close but has stopped responding to pings */ gboolean not_responding; + /*! A prompt shown when you are trying to close a client that is not + responding. It asks if you want to kill the client */ + struct _ObPrompt *kill_prompt; /*! We tried to close the window with a SIGTERM */ - gboolean close_tried_term; + gint kill_level; #ifdef SYNC /*! The client wants to sync during resizes */ @@ -322,8 +332,11 @@ typedef void (*ObClientCallback)(ObClient *client, gpointer data); void client_add_destroy_notify(ObClientCallback func, gpointer data); void client_remove_destroy_notify(ObClientCallback func); -/*! Manages a given window */ -void client_manage(Window win); +/*! Manages a given window + @param prompt This specifies an ObPrompt which is being managed. It is + possible to manage Openbox-owned windows through this. +*/ +void client_manage(Window win, struct _ObPrompt *prompt); /*! Unmanages all managed windows */ void client_unmanage_all(); /*! Unmanages a given client */ @@ -688,7 +701,9 @@ ObClient *client_direct_parent(ObClient *self); */ ObClient *client_search_top_direct_parent(ObClient *self); -/*! Is one client a direct child of another (i.e. not through the group.) */ +/*! Is one client a direct child of another (i.e. not through the group.) + This checks more than one level, so there may be another direct child in + between */ gboolean client_is_direct_child(ObClient *parent, ObClient *child); /*! Search for a parent of a client. This only searches up *ONE LEVEL*, and |
