* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
*
* include/data.h: This file defines all data structures used by i3
*
#include <xcb/xcb_atom.h>
#include <stdbool.h>
#include <pcre.h>
+#include <sys/time.h>
#include "queue.h"
/** 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;
+
/** Whether the window says it is a dock window */
enum { W_NODOCK = 0, W_DOCK_TOP = 1, W_DOCK_BOTTOM = 2 } dock;
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,
*/
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;
};
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