{
ObClient *client;
Time time;
+ gulong serial;
} ObFocusDelayData;
typedef struct
event_last_user_time = CurrentTime;
event_curtime = t;
- event_curserial = 0;
}
static void event_hack_mods(XEvent *e)
/* if something happens and it's not from an XEvent, then we don't know
the time */
event_curtime = CurrentTime;
+ event_curserial = 0;
}
static void event_handle_root(XEvent *e)
data = g_new(ObFocusDelayData, 1);
data->client = client;
data->time = event_curtime;
+ data->serial = event_curserial;
ob_main_loop_timeout_add(ob_main_loop,
config_focus_delay * 1000,
ObFocusDelayData data;
data.client = client;
data.time = event_curtime;
+ data.serial = event_curserial;
focus_delay_func(&data);
}
}
if (menu_frame_visible || moveresize_in_progress) return FALSE;
event_curtime = d->time;
+ event_curserial = d->serial;
if (client_focus(d->client) && config_focus_raise)
stacking_raise(CLIENT_AS_WINDOW(d->client));
event_curtime = old;
client, FALSE);
}
-void event_halt_focus_delay(gulong serial)
+void event_halt_focus_delay()
{
/* ignore all enter events up till the event which caused this to occur */
if (event_curserial) event_ignore_enter_range(1, event_curserial);
gulong event_start_ignore_all_enters(void)
{
- /* increment the serial so we don't ignore events we weren't meant to */
XSync(ob_display, FALSE);
return LastKnownRequestProcessed(ob_display);
}
void event_end_ignore_all_enters(gulong start)
{
+ XSync(ob_display, FALSE);
event_ignore_enter_range(start, LastKnownRequestProcessed(ob_display));
}