if (e->xconfigurerequest.value_mask & CWStackMode) {
ObClient *sibling = NULL;
+ gulong ignore_start;
/* get the sibling */
if (e->xconfigurerequest.value_mask & CWSibling) {
}
/* activate it rather than just focus it */
+ if (!config_focus_under_mouse)
+ ignore_start = event_start_ignore_all_enters();
stacking_restack_request(client, sibling,
e->xconfigurerequest.detail,
TRUE);
+ if (!config_focus_under_mouse)
+ event_end_ignore_all_enters(ignore_start);
/* if a stacking change moves the window without resizing */
move = TRUE;
e->xclient.data.l[2] == TopIf ||
e->xclient.data.l[2] == Opposite)
{
+ gulong ignore_start;
+
+ if (!config_focus_under_mouse)
+ ignore_start = event_start_ignore_all_enters();
/* just raise, don't activate */
stacking_restack_request(client, sibling,
e->xclient.data.l[2], FALSE);
+ if (!config_focus_under_mouse)
+ event_end_ignore_all_enters(ignore_start);
+
/* send a synthetic ConfigureNotify, cuz this is supposed
to be like a ConfigureRequest. */
client_reconfigure(client);
/* XXX wraparound... */
ob_debug(" ignore range %u-%u\n", r->start, r->end);
- if (e->xany.serial > r->end) {
+ if ((glong)(e->xany.serial - r->end) > 0) {
+ /* past the end */
ignore_serials = g_slist_delete_link(ignore_serials, it);
g_free(r);
}
- else if (e->xany.serial >= r->start)
+ else if ((glong)(e->xany.serial - r->start) >= 0)
return TRUE;
}
return FALSE;