+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * con.c: Functions which deal with containers directly (creating containers,
+ * searching containers, getting specific properties from containers,
+ * …).
+ *
+ */
#ifndef _CON_H
#define _CON_H
*/
Con *con_inside_floating(Con *con);
+/**
+ * Checks if the given container is inside a focused container.
+ *
+ */
+bool con_inside_focused(Con *con);
+
/**
* Returns the container with the given client window ID or NULL if no such
* container exists.
* Moves the given container to the currently focused container on the given
* workspace.
*
+ * The fix_coordinates flag will translate the current coordinates (offset from
+ * the monitor position basically) to appropriate coordinates on the
+ * destination workspace.
+ * Not enabling this behaviour comes in handy when this function gets called by
+ * floating_maybe_reassign_ws, which will only "move" a floating window when it
+ * *already* changed its coordinates to a different output.
+ *
* The dont_warp flag disables pointer warping and will be set when this
* function is called while dragging a floating window.
*
* TODO: is there a better place for this function?
*
*/
-void con_move_to_workspace(Con *con, Con *workspace, bool dont_warp);
+void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates, bool dont_warp);
/**
* Returns the orientation of the given container (for stacked containers,
*/
int con_border_style(Con *con);
+/**
+ * Sets the given border style on con, correctly keeping the position/size of a
+ * floating window.
+ *
+ */
+void con_set_border_style(Con *con, int border_style);
+
/**
* This function changes the layout of a given container. Use it to handle
* special cases like changing a whole workspace to stacked/tabbed (creates a