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);
|
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
|
* Generates a configure_notify_event with absolute coordinates (relative to
|
||||||
* the X root window, not to the client’s frame) for the given client.
|
* 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);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds out which modifier mask is the one for numlock, as the user may
|
* 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;
|
state->mapped = con->mapped;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool fake_notify = false;
|
||||||
/* set new position if rect changed */
|
/* set new position if rect changed */
|
||||||
if (memcmp(&(state->rect), &(con->rect), sizeof(Rect)) != 0) {
|
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);
|
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);
|
xcb_set_window_rect(conn, con->frame, con->rect);
|
||||||
memcpy(&(state->rect), &(con->rect), sizeof(Rect));
|
memcpy(&(state->rect), &(con->rect), sizeof(Rect));
|
||||||
|
fake_notify = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dito, but for child windows */
|
/* 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);
|
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);
|
xcb_set_window_rect(conn, con->window->id, con->window_rect);
|
||||||
memcpy(&(state->rect), &(con->rect), sizeof(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 */
|
/* 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);
|
xcb_flush(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
/*
|
||||||
* Generates a configure_notify_event with absolute coordinates (relative to the X root
|
* Generates a configure_notify_event with absolute coordinates (relative to the X root
|
||||||
* window, not to the client’s frame) for the given client.
|
* 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;
|
Rect absolute;
|
||||||
|
if (con->window == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
absolute.x = client->rect.x + client->child_rect.x;
|
absolute.x = con->rect.x + con->window_rect.x;
|
||||||
absolute.y = client->rect.y + client->child_rect.y;
|
absolute.y = con->rect.y + con->window_rect.y;
|
||||||
absolute.width = client->child_rect.width;
|
absolute.width = con->window_rect.width;
|
||||||
absolute.height = client->child_rect.height;
|
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.
|
* Finds out which modifier mask is the one for numlock, as the user may change this.
|
||||||
|
|
Loading…
Reference in New Issue