if (config) {
client_find_onscreen(client, &x, &y, w, h, FALSE);
+ client_configure(client, x, y, w, h, FALSE, TRUE);
- /* don't create enter events from clients moving themselves */
- grab_pointer(FALSE, FALSE, OB_CURSOR_NONE);
- client_configure_full(client, x, y, w, h, FALSE, TRUE);
- ungrab_pointer();
+ /* ignore enter events caused by these like ob actions do */
+ event_ignore_queued_enters();
}
break;
}
client->window);
client_set_state(client, e->xclient.data.l[0],
e->xclient.data.l[1], e->xclient.data.l[2]);
+
+ /* ignore enter events caused by these like ob actions do */
+ event_ignore_queued_enters();
} else if (msgtype == prop_atoms.net_close_window) {
ob_debug("net_close_window for 0x%lx\n", client->window);
client_close(client);
client_convert_gravity(client, grav, &x, &y, w, h);
client_find_onscreen(client, &x, &y, w, h, FALSE);
- /* don't create enter events from clients moving themselves */
- grab_pointer(FALSE, FALSE, OB_CURSOR_NONE);
- client_configure_full(client, x, y, w, h, FALSE, TRUE);
- ungrab_pointer();
+ client_configure(client, x, y, w, h, FALSE, TRUE);
+
+ /* ignore enter events caused by these like ob actions do */
+ event_ignore_queued_enters();
} else if (msgtype == prop_atoms.net_restack_window) {
if (e->xclient.data.l[0] != 2) {
ob_debug_type(OB_DEBUG_APP_BUGS,
e->xclient.data.l[2], FALSE);
/* send a synthetic ConfigureNotify, cuz this is supposed
to be like a ConfigureRequest. */
- client_configure_full(client, client->area.x,
- client->area.y,
- client->area.width,
- client->area.height,
- FALSE, TRUE);
+ client_reconfigure(client);
} else
ob_debug_type(OB_DEBUG_APP_BUGS,
"_NET_RESTACK_WINDOW sent for window %s "