Skip to content

Commit

Permalink
xwayland: send synthetic configure events (#9193)
Browse files Browse the repository at this point in the history
  • Loading branch information
DDoSolitary authored Jan 27, 2025
1 parent cb7ed4f commit e7a72de
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/xwayland/XSurface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,22 @@ void CXWaylandSurface::configure(const CBox& box) {
uint32_t values[] = {box.x, box.y, box.width, box.height, 0};
xcb_configure_window(g_pXWayland->pWM->connection, xID, mask, values);

if (geometry.width == box.width && geometry.height == box.height) {
// ICCCM requires a synthetic event when window size is not changed
xcb_configure_notify_event_t e;
e.response_type = XCB_CONFIGURE_NOTIFY;
e.event = xID;
e.window = xID;
e.x = box.x;
e.y = box.y;
e.width = box.width;
e.height = box.height;
e.border_width = 0;
e.above_sibling = XCB_NONE;
e.override_redirect = overrideRedirect;
xcb_send_event(g_pXWayland->pWM->connection, false, xID, XCB_EVENT_MASK_STRUCTURE_NOTIFY, (const char*)&e);
}

g_pXWayland->pWM->updateClientList();

xcb_flush(g_pXWayland->pWM->connection);
Expand Down

0 comments on commit e7a72de

Please sign in to comment.