xcb_flush(conn);
free(reply);
} else if (event->type == A__NET_REQUEST_FRAME_EXTENTS) {
- // A client can request an estimate for the frame size which the window
- // manager will put around it before actually mapping its window. Java
- // does this (as of openjdk-7).
- //
- // Note that the calculation below is not entirely accurate — once you
- // set a different border type, it’s off. We _could_ request all the
- // window properties (which have to be set up at this point according
- // to EWMH), but that seems rather elaborate. The standard explicitly
- // says the application must cope with an estimate that is not entirely
- // accurate.
+ /*
+ * A client can request an estimate for the frame size which the window
+ * manager will put around it before actually mapping its window. Java
+ * does this (as of openjdk-7).
+ *
+ * Note that the calculation below is not entirely accurate — once you
+ * set a different border type, it’s off. We _could_ request all the
+ * window properties (which have to be set up at this point according
+ * to EWMH), but that seems rather elaborate. The standard explicitly
+ * says the application must cope with an estimate that is not entirely
+ * accurate.
+ */
DLOG("_NET_REQUEST_FRAME_EXTENTS for window 0x%08x\n", event->window);
- xcb_get_geometry_reply_t *geometry;
- xcb_get_geometry_cookie_t cookie = xcb_get_geometry(conn, event->window);
-
- if (!(geometry = xcb_get_geometry_reply(conn, cookie, NULL))) {
- ELOG("Could not get geometry of X11 window 0x%08x while handling "
- "the _NET_REQUEST_FRAME_EXTENTS ClientMessage\n",
- event->window);
- return;
- }
-
- DLOG("Current geometry = x=%d, y=%d, width=%d, height=%d\n",
- geometry->x, geometry->y, geometry->width, geometry->height);
+ /* The reply data: approximate frame size */
Rect r = {
- 0, // left
- geometry->width + 4, // right
- 0, // top
- geometry->height + config.font.height + 5, // bottom
+ config.default_border_width, /* left */
+ config.default_border_width, /* right */
+ config.font.height + 5, /* top */
+ config.default_border_width /* bottom */
};
xcb_change_property(
conn,