]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
make helper windows share desktops with all their application top level windows
[chaz/openbox] / openbox / client.h
index 2863a98f5dde5a1d7059c506a74664303e8c631f..3d30c6a4605385fc92325663d47a9b665f43e2b5 100644 (file)
@@ -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();
@@ -458,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);
@@ -513,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);
 
@@ -558,10 +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 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,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);
This page took 0.027182 seconds and 4 git commands to generate.