Window focus_backup = None;
gboolean focus_new = TRUE;
gboolean focus_follow = TRUE;
+int focus_ignore_in = 0;
static void parse_assign(char *name, ParseToken *value)
{
focus_client = client;
/* move to the top of the list */
- if (client != NULL) {
+ if (focus_ignore_in) {
+ g_assert(focus_ignore_in > 0);
+ --focus_ignore_in;
+ } else if (client != NULL) {
desktop = client->desktop;
if (desktop == DESKTOP_ALL) desktop = screen_desktop;
focus_order[desktop] = g_list_remove(focus_order[desktop], client);
/*! The client which is currently focused */
extern struct Client *focus_client;
+/* The number of FocusIn events which should be ignored for tracking the focus
+ order */
+extern int focus_ignore_in;
+
/*! The recent focus order on each desktop */
extern GList **focus_order;