window with RevertToParent focus */
frame_adjust_focus(client->frame, FALSE);
/* focus_set_client(NULL) has already been called */
- client_calc_layer(client);
}
else if (e->xfocus.detail == NotifyPointerRoot ||
e->xfocus.detail == NotifyDetailNone ||
frame_adjust_focus(client->frame, FALSE);
/* focus_set_client(NULL) has already been called in this
section or by focus_fallback */
- client_calc_layer(client);
}
}
else if (client)
if (e->type == ButtonPress || e->type == ButtonRelease) {
/* If the button press was on some non-root window, or was physically
- on the root window, the process it */
+ on the root window, then process it */
if (window != RootWindow(ob_display, ob_screen) ||
e->xbutton.subwindow == None)
{
void event_end_ignore_all_enters(gulong start)
{
- event_ignore_enter_range(start, NextRequest(ob_display));
+ /* Use (NextRequest-1) so that we ignore up to the current serial only.
+ Inside event_ignore_enter_range, we increment the serial by one, but if
+ we ignore that serial too, then any enter events generated by mouse
+ movement will be ignored until we create some further network traffic.
+ Instead ignore up to NextRequest-1, then when we increment the serial,
+ we will be *past* the range of ignored serials */
+ event_ignore_enter_range(start, NextRequest(ob_display)-1);
}
static gboolean is_enter_focus_event_ignored(XEvent *e)