Reply on configurerequest even if geometry is the same (#1388)

Bug was introduced by baaff93a73.

Fixes: https://github.com/awesomeWM/awesome/issues/1340
Fixes: https://github.com/awesomeWM/awesome/issues/1369
This commit is contained in:
Vitja Makarov 2017-01-12 13:19:01 +03:00 committed by Daniel Hahler
parent 9f832b95a3
commit 5dc88da3bd
3 changed files with 12 additions and 4 deletions

View File

@ -395,9 +395,8 @@ event_handle_configurerequest(xcb_configure_request_event_t *ev)
geometry.y += diff_y; geometry.y += diff_y;
} }
if(!client_resize(c, geometry, false)) c->got_configure_request = true;
/* ICCCM 4.1.5 / 4.2.3, if nothing was changed, send an event saying so */ client_resize(c, geometry, false);
client_send_configure(c);
} }
else if (xembed_getbywin(&globalconf.embedded, ev->window)) else if (xembed_getbywin(&globalconf.embedded, ev->window))
{ {

View File

@ -1210,8 +1210,14 @@ client_geometry_refresh(void)
/* Is there anything to do? */ /* Is there anything to do? */
if (AREA_EQUAL(geometry, c->x11_frame_geometry) if (AREA_EQUAL(geometry, c->x11_frame_geometry)
&& AREA_EQUAL(real_geometry, c->x11_client_geometry)) && AREA_EQUAL(real_geometry, c->x11_client_geometry)) {
if (c->got_configure_request) {
/* ICCCM 4.1.5 / 4.2.3, if nothing was changed, send an event saying so */
client_send_configure(c);
c->got_configure_request = false;
}
continue; continue;
}
if (!ignored_enterleave) { if (!ignored_enterleave) {
client_ignore_enterleave_events(); client_ignore_enterleave_events();
@ -1230,6 +1236,7 @@ client_geometry_refresh(void)
/* ICCCM 4.2.3 says something else, but Java always needs this... */ /* ICCCM 4.2.3 says something else, but Java always needs this... */
client_send_configure(c); client_send_configure(c);
c->got_configure_request = false;
} }
if (ignored_enterleave) if (ignored_enterleave)
client_restore_enterleave_events(); client_restore_enterleave_events();

View File

@ -64,6 +64,8 @@ struct client_t
/** Old window geometry currently configured in X11 */ /** Old window geometry currently configured in X11 */
area_t x11_client_geometry; area_t x11_client_geometry;
area_t x11_frame_geometry; area_t x11_frame_geometry;
/** Got a configure request and have to call client_send_configure() if its ignored? */
bool got_configure_request;
/** Startup ID */ /** Startup ID */
char *startup_id; char *startup_id;
/** True if the client is sticky */ /** True if the client is sticky */