Merge branch 'backport' into work
[mikachu/openbox.git] / openbox / client.h
index c24fcb2..30cab17 100644 (file)
@@ -246,6 +246,8 @@ struct _ObClient
 
     /*! The window uses shape extension to be non-rectangular? */
     gboolean shaped;
+    /*! The window uses shape extension to have non-rectangular input? */
+    gboolean shaped_input;
 
     /*! The window is modal, so it must be processed before any windows it is
       related to can be focused */
@@ -327,7 +329,7 @@ void client_remove_destroy_notify(ObClientCallback func);
 */
 void client_manage(Window win, struct _ObPrompt *prompt);
 /*! Unmanages all managed windows */
-void client_unmanage_all();
+void client_unmanage_all(void);
 /*! Unmanages a given client */
 void client_unmanage(ObClient *client);
 
@@ -340,7 +342,7 @@ ObClient *client_fake_manage(Window win);
 void client_fake_unmanage(ObClient *self);
 
 /*! Sets the client list on the root window from the client_list */
-void client_set_list();
+void client_set_list(void);
 
 /*! Determines if the client should be shown or hidden currently.
   @return TRUE if it should be visible; otherwise, FALSE.
@@ -571,14 +573,14 @@ gboolean client_focus(ObClient *self);
 
 /*! Activates the client for use, focusing, uniconifying it, etc. To be used
   when the user deliberately selects a window for use.
-  @param here If true, then the client is brought to the current desktop;
-              otherwise, the desktop is changed to where the client lives.
+  @param desktop If true, and the window is on another desktop, it will still
+                 be activated.
   @param raise If true, the client is brought to the front.
   @param unshade If true, the client is unshaded (if it is shaded)
   @param user If true, then a user action is what requested the activation;
               otherwise, it means an application requested it on its own
 */
-void client_activate(ObClient *self, gboolean here, gboolean raise,
+void client_activate(ObClient *self, gboolean desktop, gboolean raise,
                      gboolean unshade, gboolean user);
 
 /*! Bring all of its helper windows to its desktop. These are the utility and
@@ -630,6 +632,8 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig);
 
 /*! Sets the window's type and transient flag */
 void client_get_type_and_transientness(ObClient *self);
+/*! Gets the motif wm hints */
+void client_get_mwm_hints(ObClient *self);
 
 /*! Returns a client's icon set, or its parents (recursively) if it doesn't
   have one
@@ -641,12 +645,18 @@ RrImage* client_icon(ObClient *self);
   transient for */
 gboolean client_has_parent(ObClient *self);
 
-/*! Searches a client's direct parents for a focused window. The function does
-  not check for the passed client, only for *ONE LEVEL* of its parents.
-  If no focused parentt is found, NULL is returned.
+/*! Searches a client's immediate parents for a focused window. The function
+  does not check for the passed client, only for *ONE LEVEL* of its parents.
+  If no focused parent is found, NULL is returned.
 */
 ObClient *client_search_focus_parent(ObClient *self);
 
+/*! Searches a client's parents for a focused window. The function
+  does not check for the passed client, but searches through all of its
+  parents. If no focused parent is found, NULL is returned.
+*/
+ObClient *client_search_focus_parent_full(ObClient *self);
+
 /*! Searches a client's transients for a focused window. The function does not
   check for the passed client, only for its transients.
   If no focused transient is found, NULL is returned.
@@ -715,7 +725,7 @@ void client_set_layer(ObClient *self, gint layer);
 
 guint client_monitor(ObClient *self);
 
-ObClient* client_under_pointer();
+ObClient* client_under_pointer(void);
 
 gboolean client_has_group_siblings(ObClient *self);