*
* i3 - an improved dynamic tiling window manager
*
- * (c) 2009 Michael Stapelberg and contributors
+ * © 2009 Michael Stapelberg and contributors
*
* See file LICENSE for license information.
*
* and when moving a fullscreen client to another screen.
*
*/
-void client_enter_fullscreen(xcb_connection_t *conn, Client *client);
+void client_enter_fullscreen(xcb_connection_t *conn, Client *client, bool global);
+
+/**
+ * Leaves fullscreen mode for the given client. This is called by toggle_fullscreen.
+ *
+ */
+void client_leave_fullscreen(xcb_connection_t *conn, Client *client);
+
+/**
+ * Leaves fullscreen mode for the current client. This is called by toggle_fullscreen.
+ *
+ */
+void client_leave_fullscreen(xcb_connection_t *conn, Client *client);
/**
* Toggles fullscreen mode for the given client. It updates the data
*/
void client_toggle_fullscreen(xcb_connection_t *conn, Client *client);
+/**
+ * Like client_toggle_fullscreen(), but putting it in global fullscreen-mode.
+ *
+ */
+void client_toggle_fullscreen_global(xcb_connection_t *conn, Client *client);
+
/**
* Sets the position of the given client in the X stack to the highest (tiling
* layer is always on the same position, so this doesn’t matter) below the
*/
void client_change_border(xcb_connection_t *conn, Client *client, char border_type);
+/**
+ * Change the border type for the given client to normal (n), 1px border (p) or
+ * completely borderless (b) without actually re-rendering the layout. Useful
+ * for calling it when initializing a new client.
+ *
+ */
+bool client_init_border(xcb_connection_t *conn, Client *client, char border_type);
+
/**
* Unmap the client, correctly setting any state which is needed.
*
*/
void client_map(xcb_connection_t *conn, Client *client);
+/**
+ * Set the given mark for this client. Used for jumping to the client
+ * afterwards (like m<mark> and '<mark> in vim).
+ *
+ */
+void client_mark(xcb_connection_t *conn, Client *client, const char *mark);
+
+/**
+ * Returns the minimum height of a specific window. The height is calculated
+ * by using 2 pixels (for the client window itself), possibly padding this to
+ * comply with the client’s base_height and then adding the decoration height.
+ *
+ */
+uint32_t client_min_height(Client *client);
+
+/**
+ * See client_min_height.
+ *
+ */
+uint32_t client_min_width(Client *client);
+
/**
* Pretty-prints the client’s information into the logfile.
*
*/
#define CLIENT_LOG(client) do { \
- LOG("Window: frame 0x%08x, child 0x%08x\n", client->frame, client->child); \
+ DLOG("Window: frame 0x%08x, child 0x%08x\n", client->frame, client->child); \
} while (0)
#endif