]> git.sur5r.net Git - i3/i3/blobdiff - include/con.h
Handle the case where there's no font char infos.
[i3/i3] / include / con.h
index 7d828408a4dd166948c75d35edcc01b6a21bf30a..b14c477e53de6fb864b8d1dc06e29c1b36510fd3 100644 (file)
@@ -1,3 +1,14 @@
+/*
+ * 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
 
@@ -68,6 +79,12 @@ bool con_is_floating(Con *con);
  */
 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.
@@ -131,10 +148,21 @@ void con_toggle_fullscreen(Con *con, int fullscreen_mode);
 /**
  * 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);
+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,
@@ -205,6 +233,13 @@ Rect con_border_style_rect(Con *con);
  */
 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