X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fdata.h;h=f55e003d0bd2abcea36f20d89cf992fb5f9fab87;hb=1847938d4eeba98260cc79ca45a11a134274c2ea;hp=54333e049e2b5789ad4ec922f784037cd08eb78e;hpb=eaf7a49e28b7ff8e1820a1b23350647574a0ed5a;p=i3%2Fi3 diff --git a/include/data.h b/include/data.h index 54333e04..f55e003d 100644 --- a/include/data.h +++ b/include/data.h @@ -133,6 +133,15 @@ typedef enum { POINTER_WARPING_NONE = 1 } warping_t; +/** + * Focus wrapping modes. + */ +typedef enum { + FOCUS_WRAPPING_OFF = 0, + FOCUS_WRAPPING_ON = 1, + FOCUS_WRAPPING_FORCE = 2 +} focus_wrapping_t; + /** * Stores a rectangle, for example the size of a window, the child window etc. * It needs to be packed so that the compiler will not add any padding bytes. @@ -349,6 +358,13 @@ struct Autostart { autostarts_always; }; +struct output_name { + char *name; + + SLIST_ENTRY(output_name) + names; +}; + /** * An Output is a physical output on your graphics driver. Outputs which * are currently in use have (output->active == true). Each output has a @@ -370,8 +386,11 @@ struct xoutput { bool to_be_disabled; bool primary; - /** Name of the output */ - char *name; + /** List of names for the output. + * An output always has at least one name; the first name is + * considered the primary one. */ + SLIST_HEAD(names_head, output_name) + names_head; /** Pointer to the Con which represents this output */ Con *con; @@ -458,6 +477,10 @@ struct Window { int min_width; int min_height; + /* Maximum size specified for the window. */ + int max_width; + int max_height; + /* aspect ratio from WM_NORMAL_HINTS (MPlayer uses this for example) */ double aspect_ratio; }; @@ -547,16 +570,18 @@ struct Assignment { A_COMMAND = (1 << 0), A_TO_WORKSPACE = (1 << 1), A_NO_FOCUS = (1 << 2), - A_TO_WORKSPACE_NUMBER = (1 << 3) + A_TO_WORKSPACE_NUMBER = (1 << 3), + A_TO_OUTPUT = (1 << 4) } type; /** the criteria to check if a window matches */ Match match; - /** destination workspace/command, depending on the type */ + /** destination workspace/command/output, depending on the type */ union { char *command; char *workspace; + char *output; } dest; TAILQ_ENTRY(Assignment)