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:
parent
9f832b95a3
commit
5dc88da3bd
5
event.c
5
event.c
|
@ -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))
|
||||||
{
|
{
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in New Issue