X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=3b1e042cbd5ff593648d091d6c31063fb0d9e35a;hb=bafd9e9edcff0e18a03ef6f4e73d673e12a7c7ed;hp=c34d0ab628a29456d1a7168e3e4c6921e6204a4a;hpb=c778cf15cbc954d0f42ef9030d56c61bb494c1e0;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index c34d0ab6..3b1e042c 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -40,15 +40,6 @@ struct _ObSessionState; struct _ObPrompt; typedef struct _ObClient ObClient; -typedef struct _ObClientIcon ObClientIcon; - -/*! Holds an icon in ARGB format */ -struct _ObClientIcon -{ - gint width; - gint height; - RrPixel32 *data; -}; /*! Possible window types */ typedef enum @@ -255,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 */ @@ -307,10 +300,8 @@ struct _ObClient */ guint functions; - /*! Icons for the client as specified on the client window */ - ObClientIcon *icons; - /*! The number of icons in icons */ - guint nicons; + /* The window's icon, in a variety of shapes and sizes */ + RrImage *icon_set; /*! Where the window should iconify to/from */ Rect icon_geometry; @@ -584,15 +575,18 @@ 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 here If true, and the window is on another desktop, it will be moved + to the current desktop, otherwise the desktop will switch to + where the window is. @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, - gboolean unshade, gboolean user); +void client_activate(ObClient *self, gboolean desktop, gboolean here, + gboolean raise, gboolean unshade, gboolean user); /*! Bring all of its helper windows to its desktop. These are the utility and stuff windows. */ @@ -643,20 +637,31 @@ 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); -const ObClientIcon *client_icon(ObClient *self, gint w, gint h); +/*! Returns a client's icon set, or its parents (recursively) if it doesn't + have one +*/ +RrImage* client_icon(ObClient *self); /*! 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. +/*! 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.