]> git.sur5r.net Git - i3/i3/blobdiff - include/data.h
Merge branch 'release-4.16.1'
[i3/i3] / include / data.h
index 54333e049e2b5789ad4ec922f784037cd08eb78e..f55e003d0bd2abcea36f20d89cf992fb5f9fab87 100644 (file)
@@ -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)