re-enable sending fake configure notifies
This commit is contained in:
parent
71e0e49c0e
commit
246d4627be
|
@ -127,14 +127,12 @@ void xcb_draw_rect(xcb_connection_t *conn, xcb_drawable_t drawable,
|
|||
*/
|
||||
void fake_configure_notify(xcb_connection_t *conn, Rect r, xcb_window_t window);
|
||||
|
||||
#if 0
|
||||
/**
|
||||
* Generates a configure_notify_event with absolute coordinates (relative to
|
||||
* the X root window, not to the client’s frame) for the given client.
|
||||
*
|
||||
*/
|
||||
void fake_absolute_configure_notify(xcb_connection_t *conn, Client *client);
|
||||
#endif
|
||||
void fake_absolute_configure_notify(Con *con);
|
||||
|
||||
/**
|
||||
* Finds out which modifier mask is the one for numlock, as the user may
|
||||
|
|
8
src/x.c
8
src/x.c
|
@ -239,11 +239,13 @@ static void x_push_node(Con *con) {
|
|||
state->mapped = con->mapped;
|
||||
}
|
||||
|
||||
bool fake_notify = false;
|
||||
/* set new position if rect changed */
|
||||
if (memcmp(&(state->rect), &(con->rect), sizeof(Rect)) != 0) {
|
||||
LOG("setting rect (%d, %d, %d, %d)\n", con->rect.x, con->rect.y, con->rect.width, con->rect.height);
|
||||
xcb_set_window_rect(conn, con->frame, con->rect);
|
||||
memcpy(&(state->rect), &(con->rect), sizeof(Rect));
|
||||
fake_notify = true;
|
||||
}
|
||||
|
||||
/* dito, but for child windows */
|
||||
|
@ -252,6 +254,12 @@ static void x_push_node(Con *con) {
|
|||
con->window_rect.x, con->window_rect.y, con->window_rect.width, con->window_rect.height);
|
||||
xcb_set_window_rect(conn, con->window->id, con->window_rect);
|
||||
memcpy(&(state->rect), &(con->rect), sizeof(Rect));
|
||||
fake_notify = true;
|
||||
}
|
||||
|
||||
if (fake_notify) {
|
||||
LOG("Sending fake configure notify\n");
|
||||
fake_absolute_configure_notify(con);
|
||||
}
|
||||
|
||||
/* handle all children and floating windows of this node */
|
||||
|
|
16
src/xcb.c
16
src/xcb.c
|
@ -172,23 +172,23 @@ void fake_configure_notify(xcb_connection_t *conn, Rect r, xcb_window_t window)
|
|||
xcb_flush(conn);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Generates a configure_notify_event with absolute coordinates (relative to the X root
|
||||
* window, not to the client’s frame) for the given client.
|
||||
*
|
||||
*/
|
||||
void fake_absolute_configure_notify(xcb_connection_t *conn, Client *client) {
|
||||
void fake_absolute_configure_notify(Con *con) {
|
||||
Rect absolute;
|
||||
if (con->window == NULL)
|
||||
return;
|
||||
|
||||
absolute.x = client->rect.x + client->child_rect.x;
|
||||
absolute.y = client->rect.y + client->child_rect.y;
|
||||
absolute.width = client->child_rect.width;
|
||||
absolute.height = client->child_rect.height;
|
||||
absolute.x = con->rect.x + con->window_rect.x;
|
||||
absolute.y = con->rect.y + con->window_rect.y;
|
||||
absolute.width = con->window_rect.width;
|
||||
absolute.height = con->window_rect.height;
|
||||
|
||||
fake_configure_notify(conn, absolute, client->child);
|
||||
fake_configure_notify(conn, absolute, con->window->id);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Finds out which modifier mask is the one for numlock, as the user may change this.
|
||||
|
|
Loading…
Reference in New Issue