X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=a2cdea25116abc930a0952e8a95ea3442e02e15b;hb=a79e51c64fdfa1ffd303a5a96c6ae9e393b1353a;hp=e4831b95341af4c09de21b49688681b4dec6826e;hpb=a8fe821fddc2f30b4031bd9f9e854382a9f0b76e;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index e4831b95..a2cdea25 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -103,6 +103,8 @@ struct _ObClient case. */ ObClient *transient_for; + /*! The client which are parents of this client */ + GSList *parents; /*! The clients which are transients (children) of this client */ GSList *transients; /*! The desktop on which the window resides (0xffffffff for all @@ -560,6 +562,9 @@ void client_activate(ObClient *self, gboolean here, gboolean user); stuff windows. */ void client_bring_helper_windows(ObClient *self); +/*! Bring all of its modal windows to its desktop. */ +void client_bring_modal_windows(ObClient *self); + /*! Calculates the stacking layer for the client window */ void client_calc_layer(ObClient *self); @@ -599,14 +604,21 @@ void client_update_icon_geometry(ObClient *self); /*! Set up what decor should be shown on the window and what functions should be allowed (ObClient::decorations and ObClient::functions). This also updates the NET_WM_ALLOWED_ACTIONS hint. + @param reconfig When TRUE, the window will be reconfigured to show the + changes */ -void client_setup_decor_and_functions(ObClient *self); +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); const ObClientIcon *client_icon(ObClient *self, gint w, gint h); +/*! Return TRUE if the client is transient for some other window. Return + FALSE if it's not transient or there is no window for it to be + 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. @@ -625,6 +637,11 @@ ObClient *client_search_focus_tree(ObClient *self); */ ObClient *client_search_focus_tree_full(ObClient *self); +/*! Searches a client's group and each member's transients for a focused + window. This doesn't go up the window's transient tree at all. If no + focused client is found, NULL is returned. */ +ObClient *client_search_focus_group_full(ObClient *self); + /*! Return a modal child of the client window that can be focused. @return A modal child of the client window that can be focused, or 0 if none was found. @@ -644,10 +661,15 @@ GSList *client_search_all_top_parents(ObClient *self); */ GSList *client_search_all_top_parents_layer(ObClient *self); +/*! Returns the client's parent when it is transient for a direct window + rather than a group. If it has no parents, or is transient for the + group, this returns null */ +ObClient *client_direct_parent(ObClient *self); + /*! Returns a window's top level parent. This only counts direct parents, not groups if it is transient for its group. */ -ObClient *client_search_top_normal_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.) */ gboolean client_is_direct_child(ObClient *parent, ObClient *child);