]> git.sur5r.net Git - i3/i3/blobdiff - include/data.h
Merge branch 'master' into next
[i3/i3] / include / data.h
index b498e02abc32afeb1c742d42e9dada28a3862dad..6cf3515e64dc362fbfc98febf1e5e24d354e434e 100644 (file)
@@ -17,6 +17,7 @@
 #include <xcb/xcb_atom.h>
 #include <stdbool.h>
 #include <pcre.h>
+#include <sys/time.h>
 
 #include "queue.h"
 
@@ -304,6 +305,9 @@ struct Window {
     /** Whether the application needs to receive WM_TAKE_FOCUS */
     bool needs_take_focus;
 
+    /** When this window was marked urgent. 0 means not urgent */
+    struct timeval urgent;
+
     /** Whether this window accepts focus. We store this inverted so that the
      * default will be 'accepts focus'. */
     bool doesnt_accept_focus;
@@ -335,6 +339,11 @@ struct Match {
     struct regex *instance;
     struct regex *mark;
     struct regex *role;
+    enum {
+        U_DONTCHECK = -1,
+        U_LATEST = 0,
+        U_OLDEST = 1
+    } urgent;
     enum {
         M_DONTCHECK = -1,
         M_NODOCK = 0,
@@ -357,6 +366,11 @@ struct Match {
      */
     enum { M_HERE = 0, M_ASSIGN_WS, M_BELOW } insert_where;
 
+    /* Whether this match was generated when restarting i3 inplace.
+     * Leads to not setting focus when managing a new window, because the old
+     * focus stack should be restored. */
+    bool restart_mode;
+
     TAILQ_ENTRY(Match) matches;
 };
 
@@ -514,6 +528,10 @@ struct Con {
         SCRATCHPAD_FRESH = 1,
         SCRATCHPAD_CHANGED = 2
     } scratchpad_state;
+
+    /* The ID of this container before restarting. Necessary to correctly
+     * interpret back-references in the JSON (such as the focus stack). */
+    int old_id;
 };
 
 #endif