X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=ff460153092eb3067d4d9854afb43b22feebf6a9;hb=2244bc036a9c96704675318dc382ea3abd6f3fdf;hp=41531979ddf34a1bee854763dd9c17cae1aafa36;hpb=d9f14c1d010860e658f4a9adc6682e0264b410aa;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index 41531979..ff460153 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -211,8 +211,6 @@ struct _ObClient /*! Can the window receive input focus? */ gboolean can_focus; - /*! Urgency flag */ - gboolean urgent; /*! Notify the window when it receives focus? */ gboolean focus_notify; @@ -243,6 +241,8 @@ struct _ObClient /*! The window should be underneath other windows of the same type. above takes priority over below. */ gboolean below; + /*! Demands attention flag */ + gboolean demands_attention; /*! The layer in which the window will be stacked, windows in lower layers are always below windows in higher layers. */ @@ -269,6 +269,8 @@ struct _ObClient ObClientIcon *icons; /*! The number of icons in icons */ guint nicons; + + guint32 user_time; }; struct _ObAppSettings @@ -429,6 +431,9 @@ void client_maximize(ObClient *self, gboolean max, gint dir, */ void client_shade(ObClient *self, gboolean shade); +/*! Hilite the window to make the user notice it */ +void client_hilite(ObClient *self, gboolean hilite); + /*! Request the client to close its window */ void client_close(ObClient *self); @@ -477,8 +482,11 @@ void client_unfocus(ObClient *self); 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 user If true, then a user action is what requested the activation; + otherwise, it means an application requested it on its own + @param timestamp The time at which the activate was requested. */ -void client_activate(ObClient *self, gboolean here); +void client_activate(ObClient *self, gboolean here, gboolean user, Time time); /*! Calculates the stacking layer for the client window */ void client_calc_layer(ObClient *self); @@ -525,6 +533,8 @@ void client_update_class(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, gboolean new_event); /*! Set up what decor should be shown on the window and what functions should be allowed (ObClient::decorations and ObClient::functions). @@ -561,7 +571,19 @@ ObClient *client_search_focus_tree_full(ObClient *self); */ ObClient *client_search_modal_child(ObClient *self); -ObClient *client_search_top_transient(ObClient *self); +/*! Returns a list of top-level windows which this is a transient for. + It will only contain more than 1 element if the client is transient for its + group. +*/ +GSList *client_search_all_top_parents(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_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); /*! Search for a parent of a client. This only searches up *ONE LEVEL*, and returns the searched for parent if it is a parent, or NULL if not. */ @@ -575,7 +597,7 @@ ObClient *client_search_transient(ObClient *self, ObClient *search); ObClient *client_find_directional(ObClient *c, ObDirection dir); /*! Return the closest edge in the given direction */ -gint client_directional_edge_search(ObClient *c, ObDirection dir); +gint client_directional_edge_search(ObClient *c, ObDirection dir, gboolean hang); /*! Set a client window to be above/below other clients. @layer < 0 indicates the client should be placed below other clients.