#include <glib.h>
#include <X11/Xlib.h>
-struct ClientWrap;
struct Frame;
gchar *icon_title;
/*! The application that created the window */
- gchar *res_name;
+ gchar *name;
/*! The class of the window, can used for grouping */
- gchar *res_class;
+ gchar *class;
/*! The specified role of the window, used for identification */
gchar *role;
gboolean urgent;
/*! Notify the window when it receives focus? */
gboolean focus_notify;
- /*! Does the client window have the input focus? */
- gboolean focused;
/*! The window uses shape extension to be non-rectangular? */
gboolean shaped;
*/
int functions;
+ /*! Saved decorations from before becoming fullscreen */
+ int pre_fs_decor;
+
+ /*! Saved functions from before becoming fullscreen */
+ int pre_fs_func;
+
/*! Icons for the client as specified on the client window */
Icon *icons;
/*! The number of icons in icons */
Pixmap pixmap_icon;
/*! The mask for the pixmap_icon, or None if its not masked */
Pixmap pixmap_icon_mask;
-
- /* The instance of the wrapper class if one exists */
- struct ClientWrap *wrap;
} Client;
extern GSList *client_list;
surroundings (struts, etc). */
void client_remaximize(Client *self);
-/*! Shows the window if it should be shown, or hides it
- Used when changing desktops, the window's state, etc. */
-void client_showhide(Client *self, gboolean firehook);
+/*! Determines if the client should be shown or hidden currently.
+ @return TRUE if it should be visible; otherwise, FALSE.
+*/
+gboolean client_should_show(Client *self);
/*! Returns if the window should be treated as a normal window.
Some windows (desktops, docks, splash screens) have special rules applied
to them in a number of places regarding focus or user interaction. */
gboolean client_normal(Client *self);
+/* Returns if the window is focused */
+gboolean client_focused(Client *self);
+
+/*! Sets the client to a focused or unfocused state. This does not actually
+ change the input focus, but rather is used once focus has been moved to tell
+ the client that it is so. */
+void client_set_focused(Client *self, gboolean focused);
+
/*! Move and/or resize the window.
This also maintains things like the client's minsize, and size increments.
@param anchor The corner to keep in the same position when resizing.
*/
void client_shade(Client *self, gboolean shade);
-/*! Request the client to close its window. */
+/*! Request the client to close its window */
void client_close(Client *self);
+/*! Kill the client off violently */
+void client_kill(Client *self);
+
/*! Sends the window to the specified desktop */
-void client_set_desktop(Client *self, unsigned int target);
+void client_set_desktop(Client *self, guint target);
/*! Return a modal child of the client window
@return A modal child of the client window, or 0 if none was found.