]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
Merge branch 'backport' into work
[chaz/openbox] / openbox / client.h
index e33b89e4da72e9280f25768e5d4afa75deddf017..c66aaf0a3082060d10222739eb54fde3f0f70eb8 100644 (file)
 #include "mwm.h"
 #include "geom.h"
 #include "stacking.h"
+#include "window.h"
 #include "render/color.h"
 
 #include <glib.h>
 #include <X11/Xlib.h>
 
+#ifdef HAVE_SYS_TYPES_H
+#  include <sys/types.h> /* for pid_t */
+#endif
+
 struct _ObFrame;
 struct _ObGroup;
 struct _ObSessionState;
@@ -43,7 +48,7 @@ struct _ObClientIcon
     gint height;
     RrPixel32 *data;
 };
-     
+
 /*! Possible window types */
 typedef enum
 {
@@ -114,6 +119,8 @@ struct _ObClient
     gchar *client_machine;
     /*! The command used to run the program. Pre-XSMP window identification. */
     gchar *wm_command;
+    /*! The PID of the process which owns the window */
+    pid_t pid;
 
     /*! The application that created the window */
     gchar *name;
@@ -147,7 +154,7 @@ struct _ObClient
       window placement. In theory, where this window exists.
     */
     StrutPartial strut;
-     
+
     /*! The logical size of the window
       The "logical" size of the window is refers to the user's perception of
       the size of the window, and is the value that should be displayed to the
@@ -170,7 +177,7 @@ struct _ObClient
       A value of 0 means this is ignored.
     */
     gfloat max_ratio;
-  
+
     /*! The minimum size of the client window
       If the min is > the max, then the window is not resizable
     */
@@ -192,7 +199,7 @@ struct _ObClient
 
     /*! The client's specified colormap */
     Colormap colormap;
-  
+
     /*! Where to place the decorated window in relation to the undecorated
       window */
     gint gravity;
@@ -203,7 +210,7 @@ struct _ObClient
 
     /*! True if the client supports the delete_window protocol */
     gboolean delete_window;
-  
+
     /*! Was the window's position requested by the application or the user?
       if by the application, we force it completely onscreen, if by the user
       we only force it if it tries to go completely offscreen, if neither, we
@@ -213,12 +220,20 @@ struct _ObClient
     /*! Was the window's size requested by the application or the user?
       If by the application we don't let it go outside the available area */
     guint sized;
-  
+
     /*! Can the window receive input focus? */
     gboolean can_focus;
     /*! Notify the window when it receives focus? */
     gboolean focus_notify;
 
+    /*! Will the client respond to pings? */
+    gboolean ping;
+    /*! Indicates if the client is trying to close but has stopped responding
+      to pings */
+    gboolean not_responding;
+    /*! We tried to close the window with a SIGTERM */
+    gboolean close_tried_term;
+
 #ifdef SYNC
     /*! The client wants to sync during resizes */
     gboolean sync_request;
@@ -289,15 +304,9 @@ struct _ObClient
 
     /*! Where the window should iconify to/from */
     Rect icon_geometry;
-
-    /*! The time when the client last received user interaction */
-    guint32 user_time;
-    /*! A separate window for the client to update it's user_time on */
-    Window  user_time_window;
 };
 
 extern GList      *client_list;
-extern GHashTable *client_user_time_window_map;
 
 void client_startup(gboolean reconfig);
 void client_shutdown(gboolean reconfig);
@@ -310,10 +319,7 @@ typedef void (*ObClientCallback)(ObClient *client, gpointer data);
 void client_add_destroy_notify(ObClientCallback func, gpointer data);
 void client_remove_destroy_notify(ObClientCallback func);
 
-/*! Manages all existing windows */
-void client_manage_all();
-/*! Manages a given window
-*/
+/*! Manages a given window */
 void client_manage(Window win);
 /*! Unmanages all managed windows */
 void client_unmanage_all();
@@ -606,10 +612,6 @@ void client_update_title(ObClient *self);
 void client_update_strut(ObClient *self);
 /*! Updates the window's icons */
 void client_update_icons(ObClient *self);
-/*! Updates the window's user time */
-void client_update_user_time(ObClient *self);
-/*! Updates the window's user time window */
-void client_update_user_time_window(ObClient *self);
 /*! Updates the window's icon geometry (where to iconify to/from) */
 void client_update_icon_geometry(ObClient *self);
 
This page took 0.026014 seconds and 4 git commands to generate.