]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
if a prompt is already showing and you try show it again, then make it active. in...
[chaz/openbox] / openbox / client.h
index c66aaf0a3082060d10222739eb54fde3f0f70eb8..dbe93d2835dd28af87b2014b29859825ef09ade2 100644 (file)
@@ -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 */
@@ -304,6 +314,9 @@ struct _ObClient
 
     /*! Where the window should iconify to/from */
     Rect icon_geometry;
+
+    /*! A boolean used for algorithms which need to mark clients as visited */
+    gboolean visited;
 };
 
 extern GList      *client_list;
@@ -319,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 */
@@ -685,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
This page took 0.025822 seconds and 4 git commands to generate.